根据设备时区重新计算日期Swift

雷蒙德希尔

我正在开发一个从后端接收事件的应用程序。日期以UTC + 0时区返回。该应用必须在设备时区中显示开始时间。因此,我开发了一个函数来重新计算日期。

到目前为止,我在英国,并且将设备时区更改为西班牙。我写的代码是:

static func reCalculateDeviceDate(from date: Date?) -> Date? {
    guard let date = date else { return nil }

    print("Input date: ", date)

    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
    dateFormatter.timeZone = .current
    dateFormatter.locale = Locale.current

    let dateString = dateFormatter.string(from: date)
    let outputDate = dateFormatter.date(from: dateString)
    print("Recalculate date in string format: ", dateString)
    print("Output Date: ", outputDate!)

    return dateFormatter.date(from: dateString)
}

输出:

Input date:  2020-02-10 15:47:43 +0000
Recalculated date in string format:  2020-02-10 16:47:43
Output Date:  2020-02-10 15:47:43 +0000

尽管dateString显示了重新计算的日期,但它是错误创建的outputDate。

我想念什么?

埃敏·A·阿列克佩罗夫(Emin A.
  1. 不同国家/地区的时间点相同。但是在不同的时区,字符串表示形式是不同的
  2. 您为西班牙(dateString获得了正确的字符串表示形式
  3. print函数采用字符串形式的description属性。此值等于时区+0000的表示形式,即英国格林威治

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何根据时区转换日期

来自分类Dev

将日期从时区转换为设备本地时区和日期

来自分类Dev

根据UTC根据用户时区计算时区更改

来自分类Dev

根据日期范围计算天数

来自分类Dev

如何根据日期计算频率

来自分类Dev

根据月数计算日期部分

来自分类Dev

根据开始日期计算 ID

来自分类Dev

在 DatePicker 上显示相同的日期,忽略设备的时区

来自分类Dev

要求SAS根据日期计算计算

来自分类Dev

Python根据日期范围计算新日期

来自分类Dev

React JS根据日期输入计算日期

来自分类Dev

根据日期时间选择计算新日期

来自分类Dev

Mongoose 日期时间和时区,如何根据服务器时区获取日期时间

来自分类Dev

如何根据设备动态计算UITableViewCell的高度

来自分类Dev

如何根据设备动态计算UITableViewCell的高度

来自分类Dev

Django的显示日期时间不会根据用户的本地时区而改变

来自分类Dev

如何根据我的时区以特定格式获取日期

来自分类Dev

JavaScript根据浏览器时区更改我的日期

来自分类Dev

需要在php中根据用户时区存储日期

来自分类Dev

如何根据C#中的时区/国家转换日期?

来自分类Dev

根据计算条件重新标记行

来自分类Dev

C#计算出时区差异的时间和日期

来自分类Dev

从使用不同时区的日期开始计算时间

来自分类Dev

日期计算-夏令时(DST)和时区问题-土耳其

来自分类Dev

根据日期重新分配值

来自分类Dev

Python-根据日期重新映射值

来自分类Dev

在Java线程中重新计算日期时间

来自分类Dev

根据用户的时区顺序显示具有不同时区的日期时间

来自分类Dev

根据通用ID计算日期差异