Ios 字符串的日期未按预期工作

Ios 字符串的日期未按预期工作,ios,nsdate,nsdateformatter,Ios,Nsdate,Nsdateformatter,我尝试了一些关于从字符串中获取日期的建议,但无法解决这个问题。任何帮助都将不胜感激 代码: 我得到的结果是: 2014-04-24 14:43:10.115 EquineDiary[1963:60b] DateString = 08-05-14 00:00:00 2014-04-24 14:43:10.120 EquineDiary[1963:60b] eventDate, 2014-05-07 14:00:00 +0000 2014-04-2414:43:10.115等额[1963:60b]日

我尝试了一些关于从字符串中获取日期的建议,但无法解决这个问题。任何帮助都将不胜感激

代码:

我得到的结果是:

2014-04-24 14:43:10.115 EquineDiary[1963:60b] DateString = 08-05-14 00:00:00 2014-04-24 14:43:10.120 EquineDiary[1963:60b] eventDate, 2014-05-07 14:00:00 +0000 2014-04-2414:43:10.115等额[1963:60b]日期字符串=08-05-14000:00:00 2014-04-2414:43:10.120衡平法[1963:60b]事件日期,2014-05-0714:00:00+0000 我在澳大利亚,结果是来自美国东海岸的时间。我尝试了[df setDateFormat:@“dd-MM-yy-HH:MM:ss-z”]来修复时区问题,但在执行此操作时得到了零


提前谢谢。

NSLog()
不知道杰克的时区(也不知道
NSDate
上的
description
)。使用
NSDateFormatter
将日期转换回字符串,然后打印该字符串。它将是正确的。假设您的时区为UTC+10,代码工作正常<代码>NSDate始终记录为
UTC+0
。您的日期字符串已按当地时间进行分析。这两个值都与美国东部时间无关。你为什么这么想?试试这个。NSString*dateString=@“01-02-2010”;NSDateFormatter*dateFormatter=[[NSDateFormatter alloc]init];//这很重要-我们将输入日期格式设置为与输入字符串匹配//如果格式不匹配,您的字符串将为零,因此请小心[dateFormatter setDateFormat:@“dd-MM-yyyy”];NSDate*dateFromString=[[NSDate alloc]init];//瞧!dateFromString=[dateFormatter dateFromString:dateString];[日期格式化程序发布];你得到了正确的结果。不要让日志输出欺骗你。NSLog将始终以UTC时间显示日期。如果要在本地时区中显示日期,可以使用
NSDateFormatter
NSDate
格式化为
NSString
。 2014-04-24 14:43:10.115 EquineDiary[1963:60b] DateString = 08-05-14 00:00:00 2014-04-24 14:43:10.120 EquineDiary[1963:60b] eventDate, 2014-05-07 14:00:00 +0000