Ale*_*exR 2 unicode objective-c iso8601 nsdate ios
我2012-06-30使用以下代码将日期格式为NSString的NSString 转换为NSDate:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *date = [dateFormatter dateFromString:dateString];
Run Code Online (Sandbox Code Playgroud)
省略[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]NSString中的值时2012-06-29 23:00:00加上一些自动添加的时区信息,这表明系统对当前时区有一些假设.
使用上述方法设置时区时,转换工作正常.
但是,如果用户位于不同的时区,会发生什么?
如何确保iOS仅按日期解析日期并且不添加任何时间信息?
数据不会改变,时区不会影响该日期本身,只会影响日期显示,因此格林尼治标准时间13:00的日期将与格林威治标准时间14:00的日期相同
您不应该关心时区,而是将日期转换为设备使用的当前时区
[dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];
Run Code Online (Sandbox Code Playgroud)
这将设置设备的时区
| 归档时间: |
|
| 查看次数: |
3217 次 |
| 最近记录: |