1

我正在从服务器检索时间值。格式为:

“2012 年 5 月 13 日上午 6:05”

它没有在字符串中指定,但我知道它是“EDT”。

我需要:

1)摆脱上午/下午的事情。

2) 将其从 EDT(或其他时区)转换为当地 GMT+/-x 时间。

对于我的时区(意大利,GMT+1),它应该变成:

“2012 年 13 月 5 日 12:05”

我怎样才能用 NSDateFormatter 做到这一点?

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale: [NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
[dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm"];

...?

谢谢

尼古拉

4

1 回答 1

1

首先,您将 NSDateFormatters dateFormat 设置为源格式。在你的情况下:

[dateFormatter setDateFormat:@"M/d/yyyy h:mma"];
NSDate *myDate = [dateFormatter dateFromString:@"5/13/2012 6:05am"];

这将创建一个新的 NSDate 实例。现在您将格式化程序 dateFormat 设置为您的目标格式:

[dateFormatter setDateFormat:@"dd/MM/yyyy hh:mm"];
NSString *myString = [dateFormatter stringFromDate:myDate];

您还可以使用两种日期格式化程序,一种用于将您的字符串转换为 NSDate 实例,另一种用于将其转换回正确的 NSString。

有关更多信息和当前格式规范的完整列表,请参阅unicode 参考Apple Docs

于 2013-05-13T10:46:00.690 回答