【问题标题】:How do I create a date string from a date without including any daylight saving?如何在不包括任何夏令时的情况下从日期创建日期字符串?
【发布时间】:2012-11-02 15:03:18
【问题描述】:
NSString* dateString = @"2012-04-01T15:37:53Z";

ISO8601DateFormatter *dateFormat = [[ISO8601DateFormatter alloc] init];
[dateFormat setIncludeTime:YES];
NSTimeZone *utcTimeZone = [NSTimeZone timeZoneWithName:@"UTC"];

NSDate* date = [dateFormat dateFromString:dateString timeZone:&utcTimeZone];

STAssertEqualObjects([dateFormat stringFromDate:date timeZone:utcTimeZone], dateString, nil, nil);

上述测试失败

“2012-04-01T16:37:53Z”应该等于“2012-04-01T15:37:53Z”

不知道为什么 stringFromDate:date 返回的 NSString 是 1 小时后,因为两个日期都使用 UTC。

【问题讨论】:

  • 可能是因为类别dateFromString:timeZone:(或其相反)编码错误?还是因为您在一种情况下使用了&utcTimeZone 而在另一种情况下使用了utcTimeZone
  • 或者设置 dateFormat.defaultTimeZone?

标签: objective-c date iso8601


【解决方案1】:

has been resolved in a fork 的#stringFromDate 中看起来像there is a bug

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多