dateFormatter根据设备返回不同的日期

时间:2014-03-06 07:31:34

标签: ios iphone objective-c nsdateformatter

我一直在使用以下代码格式化日期值:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setLocale:[NSLocale systemLocale]];
[dateFormat setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
NSDate *myDate = [dateFormat dateFromString:@"2014-03-06 06:42:21"];

此处myDate对象值对于不同的设备是不同的。无论设备如何,如何使myDate对象值相同。

3 个答案:

答案 0 :(得分:0)

您需要将日期格式化程序的语言环境设置为en_US_POSIX的特殊语言环境。

[dateFormat setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];

答案 1 :(得分:-1)

您想手动设置NSTimeZoneNSLocale以确保相同的结果。

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en"]];
[dateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
[dateFormat setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
NSDate *myDate = [dateFormat dateFromString:@"2014-03-06 06:42:21"];

答案 2 :(得分:-2)

当我改变年份信件时,我得到了答案如下(yyyy):

[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];