public TimespanSegment<DateTimeZone> queryPoint(long ts) {
// Create a segment for retrieving the segment in spans which
// starts at a time <= ts. The returned segment will be one in
// the map or null if ts < the start time of the first segment.
// In that case, return the first item in the span instead.
TimespanSegment<DateTimeZone> querySeg = new TimespanSegment(ts, ts);
TimespanSegment<DateTimeZone> retSeg = spans.lower(querySeg);
if(retSeg==null) {
// This time is earlier than the earliest segment, return the first
return spans.first();