iOS NSDate 来自仅带时间的字符串 [英] iOS NSDate from string with time only
问题描述
我的任务是将字符串解析为 NSDate.我用以下代码做得很好:
My task is to parse string with time to NSDate. And I do it very well with following code:
NSString* timeStr = @"15:00:00"
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];
[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
[formatter setDateFormat:@"HH:mm:ss"];
NSDate* result = [formatter dateFromString:timeStr];
但结果我得到 2000-01-01 15:00:00 CET 并且我不明白为什么日期被设置为 2000-01-01,而不是2001-01-01(参考日期)或 1970-01-01.而 2000-01-01 似乎不是随机值... :)
But as a result I get 2000-01-01 15:00:00 CET and I dont understand why date was set to 2000-01-01, not 2001-01-01 (which is reference date) or 1970-01-01. And 2000-01-01 seems to be not random value... :)
推荐答案
如果您希望它只是一个带有日期部分的字符串,只需使用 dateFormatter,类似于您之前所做的.
If you want it's just a string with the date part, simply use a dateFormatter, similar what you've done before.
NSString* timeStr = @"15:00:00";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];
[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
[formatter setDateFormat:@"HH:mm:ss"];
NSDate* result = [formatter dateFromString:timeStr];
[formatter setDateFormat:@"YYYY-MM-DD"];
timeStr = [formatter stringFromDate:result];
或者你需要直接在date formatter中设置日期字符串,这是因为如果你在date formatter中指定时间字符串,你会得到日期和时间字符串的组合
Or you need to set date string in date formatter directly, this is because if you specify time string in date formatter you will get combination of date with time string
NSString* dateStr = @"2001-01-01";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];
[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
[formatter setDateFormat:@"YYYY-MM-DD"];
NSDate* result = [formatter dateFromString:dateStr];
这篇关于iOS NSDate 来自仅带时间的字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!