Objective c NSDateFormatter:Converting";2012年5月13日上午6:05;(美国东部时间)至;2012年5月13日12:05“;(IT,格林尼治标准时间+;1)

Objective c NSDateFormatter:Converting";2012年5月13日上午6:05;(美国东部时间)至;2012年5月13日12:05“;(IT,格林尼治标准时间+;1),objective-c,nsdateformatter,Objective C,Nsdateformatter,我正在从服务器检索时间值。格式为: “2012年5月13日上午6:05” 字符串中没有指定它,但我知道它是“EDT” 我需要: 1) 摆脱上午/下午的事情 2) 将其从EDT(或其他时区)转换为本地GMT+/-x时间 对于我的时区(意大利,格林尼治标准时间+1),它应该是: “2012年5月13日12:05” 如何使用NSDateFormatter执行此操作 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dat

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

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

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

我需要:

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

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

对于我的时区(意大利,格林尼治标准时间+1),它应该是:

“2012年5月13日12:05”

如何使用NSDateFormatter执行此操作

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

谢谢


Nicola

首先,将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


有关更多信息和当前格式规范的完整列表,请参阅和。首先,您可以将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

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