NSDate 在 12 月 31 日滚动到明年
NSDate rolling year over to next year on Dec 31
如果我有这个日期:
dtToUse __NSTaggedDate * 2017-12-31 05:00:00 UTC
我使用此方法从字符串中获取:
- (NSDate*) convertStringToDate : (NSString*) strToConvert andTheFormatToUse: (NSString*) strFormat {
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:strFormat];
[dateFormatter setTimeZone:[NSTimeZone localTimeZone]];
return [dateFormatter dateFromString:strToConvert];
}
我用这段代码来显示它:
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM/dd/YYYY"];
NSString* strDate = [dateFormatter stringFromDate:dtExpiration];
self.txtCurrentField.text = [dateFormatter stringFromDate:dtExpiration];
但无论我做什么,年份都会递增 1 - 所以 2017 年变成 2018 年
这只会发生在任何一年的 12 月 31 日。我怀疑这是一个时区问题,但我不确定如何解决,因为我已经将时区转换为本地时区
试试
[dateFormatter setDateFormat:@"MM/dd/yyyy"];
而不是
[dateFormatter setDateFormat:@"MM/dd/YYYY"];
之后,它将显示 12/31/2017。
YYYY 和 yyyy 不同。
如果我有这个日期:
dtToUse __NSTaggedDate * 2017-12-31 05:00:00 UTC
我使用此方法从字符串中获取:
- (NSDate*) convertStringToDate : (NSString*) strToConvert andTheFormatToUse: (NSString*) strFormat {
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:strFormat];
[dateFormatter setTimeZone:[NSTimeZone localTimeZone]];
return [dateFormatter dateFromString:strToConvert];
}
我用这段代码来显示它:
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM/dd/YYYY"];
NSString* strDate = [dateFormatter stringFromDate:dtExpiration];
self.txtCurrentField.text = [dateFormatter stringFromDate:dtExpiration];
但无论我做什么,年份都会递增 1 - 所以 2017 年变成 2018 年
这只会发生在任何一年的 12 月 31 日。我怀疑这是一个时区问题,但我不确定如何解决,因为我已经将时区转换为本地时区
试试
[dateFormatter setDateFormat:@"MM/dd/yyyy"];
而不是
[dateFormatter setDateFormat:@"MM/dd/YYYY"];
之后,它将显示 12/31/2017。
YYYY 和 yyyy 不同。