iOS - setDefaultTimeZone 是否自动处理夏令时和时区偏移?
iOS - Does setDefaultTimeZone handle daylight saving and timezone offset automatically?
服务器当前以 UTC 格式存储日期,在应用程序中,用户可以选择 select 任何时区。
[NSTimeZone setDefaultTimeZone:[NSTimeZone timeZoneWithName:selectedTimeZone]]
这将覆盖当地时区。我还需要处理 NSDateFormatter
中的任何事情吗?
setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"
我想如果我覆盖默认时区,我不需要在 NSDateFormatter
中调用 setTimeZone
。
然后 [NSDate date]
将 return 正确的当前日期还是绝对时间?
这里有几个相关的问题。
This will override the local timezone. Do I still need to handle anything in NSDateFormatter
?
您不需要设置时区,因为如果不设置,它会使用创建日期格式化程序时的默认值。
I think I don't need to call setTimeZone in NSDateFormatter if I override defaulttimezone.
是的,但是如果您更改了默认时区,则需要创建一个新的 NSDateFormatter
,因为它不会注意到默认设置已更改。或者您可以随时更改日期格式化程序的时区以更改默认值。
And [NSDate date]
will then return proper current date or it will be absolute time ?
[NSDate date]
的结果完全不受默认时区的影响。 NSDate
没有时区,所以即使您更改默认值也能得到相同的结果。
Does setDefaultTimeZone handle daylight saving and timezone offset automatically?
如果时区使用夏令时,则可以。否则没有。这似乎很明显,但请记住,像 GMT-0500
这样的区域没有夏令时,即使 America/New_York
这样的区域有。
服务器当前以 UTC 格式存储日期,在应用程序中,用户可以选择 select 任何时区。
[NSTimeZone setDefaultTimeZone:[NSTimeZone timeZoneWithName:selectedTimeZone]]
这将覆盖当地时区。我还需要处理 NSDateFormatter
中的任何事情吗?
setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"
我想如果我覆盖默认时区,我不需要在 NSDateFormatter
中调用 setTimeZone
。
然后 [NSDate date]
将 return 正确的当前日期还是绝对时间?
这里有几个相关的问题。
This will override the local timezone. Do I still need to handle anything in
NSDateFormatter
?
您不需要设置时区,因为如果不设置,它会使用创建日期格式化程序时的默认值。
I think I don't need to call setTimeZone in NSDateFormatter if I override defaulttimezone.
是的,但是如果您更改了默认时区,则需要创建一个新的 NSDateFormatter
,因为它不会注意到默认设置已更改。或者您可以随时更改日期格式化程序的时区以更改默认值。
And
[NSDate date]
will then return proper current date or it will be absolute time ?
[NSDate date]
的结果完全不受默认时区的影响。 NSDate
没有时区,所以即使您更改默认值也能得到相同的结果。
Does setDefaultTimeZone handle daylight saving and timezone offset automatically?
如果时区使用夏令时,则可以。否则没有。这似乎很明显,但请记住,像 GMT-0500
这样的区域没有夏令时,即使 America/New_York
这样的区域有。