NSDate 总是 return UTC
NSDate always return UTC
我正在使用 NSDateFormatter
根据当地时区将 NSString
转换为 NSDate
。但它在 UTC 中总是 returns。我正在使用此代码:
NSString *dateString = @"28-12-2015 04:58:10 PM";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
// this is imporant - we set our input date format to match our input string
// if format doesn't match you'll get nil from your string, so be careful
[dateFormatter setDateFormat:@"dd-MM-yyyy hh:mm:ss a"];
dateFormatter.timeZone = [NSTimeZone localTimeZone];
NSDate *dateFromString = [[NSDate alloc] init];
// voila!
dateFromString = [dateFormatter dateFromString:dateString];
在控制台中我得到这个:
Printing description of dateFromString:
2015-12-28 11:28:10 +0000
请帮我解决这个问题。
尝试将时区更改为 GMT
NSString *dateString = @"28-12-2015 04:58:10 PM";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy hh:mm:ss a"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
dateFromString = [dateFormatter dateFromString:dateString];
在控制台我得到了
2015-12-28 16:58:10 +0000
每次您通过 NSLog
或打印或 PO 或任何其他它将以 GMT 打印的方式打印 NSDate
时,都无法更改 NSDate
以将日期保存在你想要的方式。
你可以做什么它使用 NSDateFormatter
更改格式并将日期存储为字符串并使用它。
NSDate* date = nil;
NSDateFormatter*dateformatter = [[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
date = [dateformatter dateFromString:time];
NSInteger interval = [[NSTimeZone defaultTimeZone] secondsFromGMT];
date = [date dateByAddingTimeInterval:interval];
我正在使用 NSDateFormatter
根据当地时区将 NSString
转换为 NSDate
。但它在 UTC 中总是 returns。我正在使用此代码:
NSString *dateString = @"28-12-2015 04:58:10 PM";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
// this is imporant - we set our input date format to match our input string
// if format doesn't match you'll get nil from your string, so be careful
[dateFormatter setDateFormat:@"dd-MM-yyyy hh:mm:ss a"];
dateFormatter.timeZone = [NSTimeZone localTimeZone];
NSDate *dateFromString = [[NSDate alloc] init];
// voila!
dateFromString = [dateFormatter dateFromString:dateString];
在控制台中我得到这个:
Printing description of dateFromString:
2015-12-28 11:28:10 +0000
请帮我解决这个问题。
尝试将时区更改为 GMT
NSString *dateString = @"28-12-2015 04:58:10 PM";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy hh:mm:ss a"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
dateFromString = [dateFormatter dateFromString:dateString];
在控制台我得到了
2015-12-28 16:58:10 +0000
每次您通过 NSLog
或打印或 PO 或任何其他它将以 GMT 打印的方式打印 NSDate
时,都无法更改 NSDate
以将日期保存在你想要的方式。
你可以做什么它使用 NSDateFormatter
更改格式并将日期存储为字符串并使用它。
NSDate* date = nil;
NSDateFormatter*dateformatter = [[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
date = [dateformatter dateFromString:time];
NSInteger interval = [[NSTimeZone defaultTimeZone] secondsFromGMT];
date = [date dateByAddingTimeInterval:interval];