Swift 个时区 winter/summer 次
Swift timezones with winter/summer times
我正在研究世界时钟,我得到了各个国家的时间:
let date = NSDate();
var beltz = NSDateFormatter();
beltz.dateFormat = "HH:mm";
beltz.timeZone = NSTimeZone(name: "Europe/Brussels")
let belTzStr = beltz.stringFromDate(date);
println(belTzStr) //<-- correct time
我的问题是当 summer/winter 次调整 +- 1 小时时,此调整会通过 NSTimeZone 反映在代码中吗?如果没有,我该如何实现?
考虑修改后的代码:
let cal = NSCalendar.currentCalendar()
cal.timeZone = NSTimeZone(name: "America/Phoenix")!
let date = cal.dateWithEra(1, year: 2015, month: 12, day: 24, hour: 16, minute: 0, second: 0, nanosecond: 0)!
//date = NSDate();
var beltz = NSDateFormatter();
beltz.dateFormat = "dd MMMM HH:mm zzzz";
beltz.timeZone = NSTimeZone(name: "Europe/Brussels")
let belTzStr = beltz.stringFromDate(date);
print(belTzStr) //<-- correct time
我修改了您的代码以将时间添加为 Phoenix AZ,它不使用夏令时并添加了一些额外的格式,尤其是打印数据的 TZ。
现在,如果您使用 12 月(两个地区都没有夏令时)
let date = cal.dateWithEra(1, year: 2015, month: 12, day: 24, hour: 16, minute: 0, second: 0, nanosecond: 0)!
,
你得到
12 月 25 日 00:00 中欧标准时间
如果您使用 7 月(欧盟夏令时)
let date = cal.dateWithEra(1, year: 2015, month: 7, day: 24, hour: 16, minute: 0, second: 0, nanosecond: 0)!
、
你得到
7 月 25 日 01:00 中欧夏令时
是的,它适当地调整了 TZ。
我正在研究世界时钟,我得到了各个国家的时间:
let date = NSDate();
var beltz = NSDateFormatter();
beltz.dateFormat = "HH:mm";
beltz.timeZone = NSTimeZone(name: "Europe/Brussels")
let belTzStr = beltz.stringFromDate(date);
println(belTzStr) //<-- correct time
我的问题是当 summer/winter 次调整 +- 1 小时时,此调整会通过 NSTimeZone 反映在代码中吗?如果没有,我该如何实现?
考虑修改后的代码:
let cal = NSCalendar.currentCalendar()
cal.timeZone = NSTimeZone(name: "America/Phoenix")!
let date = cal.dateWithEra(1, year: 2015, month: 12, day: 24, hour: 16, minute: 0, second: 0, nanosecond: 0)!
//date = NSDate();
var beltz = NSDateFormatter();
beltz.dateFormat = "dd MMMM HH:mm zzzz";
beltz.timeZone = NSTimeZone(name: "Europe/Brussels")
let belTzStr = beltz.stringFromDate(date);
print(belTzStr) //<-- correct time
我修改了您的代码以将时间添加为 Phoenix AZ,它不使用夏令时并添加了一些额外的格式,尤其是打印数据的 TZ。
现在,如果您使用 12 月(两个地区都没有夏令时)
let date = cal.dateWithEra(1, year: 2015, month: 12, day: 24, hour: 16, minute: 0, second: 0, nanosecond: 0)!
,
你得到
12 月 25 日 00:00 中欧标准时间
如果您使用 7 月(欧盟夏令时)
let date = cal.dateWithEra(1, year: 2015, month: 7, day: 24, hour: 16, minute: 0, second: 0, nanosecond: 0)!
、
你得到
7 月 25 日 01:00 中欧夏令时
是的,它适当地调整了 TZ。