我正从服务器检索时间值。格式为:
“5/13/2012 6:05 am”
字符串中未指定,但我知道它是“EDT”。
我需要:
1)摆脱上午/下午的事情。
2)将其从EDT(或其他时区)转换为当地GMT +/- x时间。
对于我的timeZone(意大利,GMT + 1),它应该成为:
“13/05/2012 12:05”
如何使用NSDateFormatter执行此操作?
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale: [NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
[dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm"];
...
由于
尼古拉
答案 0 :(得分:1)
首先,将NSDateFormatters dateFormat设置为源格式。在你的情况下:
[dateFormatter setDateFormat:@"M/d/yyyy h:mma"];
NSDate *myDate = [dateFormatter dateFromString:@"5/13/2012 6:05am"];
这将创建一个新的NSDate实例。现在,您将formatters dateFormat设置为目标格式:
[dateFormatter setDateFormat:@"dd/MM/yyyy hh:mm"];
NSString *myString = [dateFormatter stringFromDate:myDate];
您还可以使用两个日期格式化程序,一个用于将您的字符串转换为NSDate实例,另一个用于将其转换回更正的NSString。
有关更多信息以及当前格式规范的完整列表,请参阅unicode reference和Apple Docs