【发布时间】:2012-10-07 00:31:37
【问题描述】:
尝试在 iOS6 中运行它(iOS6 之前没有测试过):
NSDateFormatter *julianDayDateFormatter = nil;
julianDayDateFormatter = [[NSDateFormatter alloc] init];
[julianDayDateFormatter setDateFormat:@"g"];
for (NSString *timeZone in [NSTimeZone knownTimeZoneNames]) {
julianDayDateFormatter.timeZone = [NSTimeZone timeZoneWithName: timeZone];
NSDate *date = [julianDayDateFormatter dateFromString:[NSString stringWithFormat:@"%d", 2475213]];
if (date == nil)
NSLog(@"timeZone = %@", timeZone);
}
你会得到以下输出:
America/Bahia
America/Campo_Grande
America/Cuiaba
America/Sao_Paulo
谁能解释为什么当 NSDateFormatter 设置为儒略日数时这四个时区的行为如此?所有其他时区使 NSDateFormatter 返回实际的 NSDates。
【问题讨论】:
-
这是一个可靠的问题,但这里明显的 Jon Skeet 效应绝对令人讨厌。
-
@JoshCaswell:这很棘手。我总是对在推特上发布这类事情感到紧张。这肯定会扭曲选票——但我想引起人们对我认为他们会觉得有趣的事情的注意。至少我的答案的投票与代表无关......
标签: objective-c ios6 nsdate nsdateformatter julian-date