gpt4 book ai didi

带有冬季/夏季时间的 Swift 时区

转载 作者:搜寻专家 更新时间:2023-11-01 06:44:46 25 4
gpt4 key购买 nike

我正在研究世界时钟,我已经得到了各个国家的时间:

    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

我的问题是,当夏季/冬季时间调整 +- 1 小时时,此调整是否会反射(reflect)在 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 月(欧盟夏令时)

让 date = cal.dateWithEra(1, year: 2015, month: 7, day: 24, hour: 16, minute: 0, second: 0, nanosecond: 0)!,

你得到了

7 月 25 日 01:00 中欧夏令时

是的,它适本地调整了 TZ。

关于带有冬季/夏季时间的 Swift 时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31620935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com