Re: Best way to parse a time today?
Re: Best way to parse a time today?
- Subject: Re: Best way to parse a time today?
- From: Dave DeLong <email@hidden>
- Date: Wed, 12 Oct 2011 18:49:04 -0700
Be careful with this approach, since there are some weird edge cases where that time may not exist on the proposed day (think DST boundaries).
Dave
Sent from my iPhone
On Oct 12, 2011, at 6:46 PM, Roger Dalal <email@hidden> wrote:
> Rick:
>
> The following code, which is likely what you are doing, will return the time in 1970 (NSDate's reference date) because you have not specified a date:
>
> NSString *timeString = @"14:50 PDT";
> NSDateFormatter *df = [[NSDateFormatter alloc ] init];
> [df setDateFormat:@"HH':'mm zzz"];
> NSDate *date = [df dateFromString:timeString];
> [df release];
>
>
> Instead, you need to use date components to set the day as well as the time, per the following:
>
> NSString *timeString = @"14:50 PDT";
> NSDateFormatter *df = [[NSDateFormatter alloc ] init];
> [df setDateFormat:@"HH':'mm zzz"];
> NSDate *date = [df dateFromString:timeString];
>
> NSCalendar *calendar = [NSCalendar currentCalendar];
> NSDateComponents *dateComponents = [calendar components:( NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit ) fromDate:[NSDate date]];
> NSDateComponents *timeComponents = [calendar components:( NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit ) fromDate: date ];
>
> [dateComponents setHour:[timeComponents hour]];
> [dateComponents setMinute:[timeComponents minute]];
> [dateComponents setSecond:[timeComponents second]];
>
> NSDate *timeToday = [calendar dateFromComponents:dateComponents];
> [df release];
>
> Change 'fromDate' in NSDateComponents *dateComponents to whatever date you want in order to create your time on a different day.
>
> Best Wishes.
>
> Roger Dalal
>
>
>
>
> On Oct 12, 2011, at 9:30 PM, Rick Mann wrote:
>
>> I have a situation where I have to parse times like "14:50 PDT". If I just set up an NSDateFormatter with dateFormat = @"HH:mm z", I end up with a time of day in 1970.
>>
>> What's the best way to get it to give me that time of day today?
>>
>> Thanks,
>> Rick
>>
>> _______________________________________________
>>
>> Cocoa-dev mailing list (email@hidden)
>>
>> Please do not post admin requests or moderator comments to the list.
>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>>
>> Help/Unsubscribe/Update your Subscription:
>>
>> This email sent to email@hidden
>
> _______________________________________________
>
> Cocoa-dev mailing list (email@hidden)
>
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden