我有NSDate,如果我使用NSLog(@"%@", date.description);
2010-12-31 15:00:00 +0000
它将显示为使用NSLog(@"%@", [date descriptionWithLocale:[[NSLocale currentLocale] localeIdentifier]]);
2011年1月1日星期六12:00:00 AM 日本标准时间
但如果我使用NSLog(@"%@", [date formattedDateString]);
2010-01-01 00:00:00 +0900
我哪里弄错了?
- (NSString *)formattedDateString {
return [self formattedStringUsingFormat:@"YYYY-MM-dd HH:mm:ss ZZZ"];
}
- (NSString *)formattedStringUsingFormat:(NSString *)dateFormat {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:dateFormat];
NSString *ret = [formatter stringFromDate:self];
[formatter release];
return ret;
}
答案 0 :(得分:3)
我得到了我需要的东西,如下所示:
- (NSString *)formattedDateString {
return [self formattedStringUsingFormat:@“yyyy-MM-dd HH:mm:ss ZZZ”];
}
答案 1 :(得分:1)
你有一个NSDate的子类,对吧?我唯一的猜测是你在覆盖代码中的其他地方犯了一些错误,也许在设置日期的时间组件时(可以这么说),以便描述字符串或其源数据没有正确更新。
编辑:哦,你工作得很好,很棒。几秒钟太晚了。 :)干杯!
答案 2 :(得分:0)
2010-01-01 00:00:00 +900
和2010-12-31 15:00:00 +000
都指向同一时间。
修改强>:
2011-01-01 00:00:00 +900
和2010-12-31 15:00:00 +000
都指向同一时间。
你碰巧住在GMT + 9(让我们说东京)吗?