【发布时间】:2013-08-19 18:48:50
【问题描述】:
我正在尝试使用 NSDateFormatter 将以下字符串转换为 NSDate:2013-08-19 7:00 AM。
但是,会创建以下 NSDate:2013-08-19 04:00:00 +0000。时间不对。
我的代码如下。我不知道我做错了什么。
NSDateFormatter *dateFormatter = [NSDateFormatter new];
[dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm a"];
NSString *string = @"2013-08-19 7:00 AM";
NSDate *dateFromString = [dateFormatter dateFromString:string];
【问题讨论】:
-
也许问题在于您没有指定时区。你在哪个时区?
-
@LuisCien 我没有意识到这很重要。我想创建两个日期对象(例如上午 7 点和上午 11 点)并计算两次之间的秒数。
-
我之前也遇到过这个“问题”。不是真正的问题,但您没有设置时区。 NSDate 不包括时区。
-
是的。如果那是您获得时间的地方。时间从哪里来。
-
@JackHumphries 如果您想要本地时区,则无需设置格式化程序的时区 - 这是默认行为。
标签: objective-c cocoa-touch nsdate