我有这些代码行,根据午夜后1秒开始的一周的第一个星期一创建一个开始日期:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd '00:00:01' a"]; // one second after midnight
NSString *startDateString = [formatter stringFromDate:firstDayOfTheWeek];
[formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss a"];
NSDate *nsdStart = [formatter dateFromString:startDateString];
startDateString 是2014-03-31 00:00:01 AM(这是正确的)
nsdStart 是2014-04-01 00:00:00 PDT(这是错误的!)
现在,我必须对结束日期做同样的事情,使用以下代码:
[formatter setDateFormat:@"yyyy-MM-dd '23:59:59' a"]; // one second before midnight
NSString *endDateString = [formatter stringFromDate:lastDayOfTheWeek]; // create end date string
[formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss a"];
NSDate *nsdEnd = [formatter dateFromString:endDateString]; // convert to NSDate
结果现在是: endDateString :2014-04-06 23:59:59 PM(这是正确的)
nsdEnd : nil
为什么 nsdStart 和 nsdEnd 与用于创建 nsd 日期的原始字符串日期不一样?
答案 0 :(得分:2)