【问题标题】:DateFormatter gives different dates for iOS 11 (converted to UTC) and iOS 10 (not converted to UTC)DateFormatter 为 iOS 11(转换为 UTC)和 iOS 10(未转换为 UTC)提供不同的日期
【发布时间】:2018-08-02 06:30:51
【问题描述】:

时间字符串转日期对象的方法:

class func StringToDate(format: String, date: String) -> Date{
        let formatter = DateFormatter()
        formatter.dateFormat = format
        return formatter.date(from: date)!
    }

格式:hh:mm a

时间字符串:10:00 AM

结果:

字符串时间:10:00 AM,对象时间:2000-01-01 10:00:00 +0000 //ios 10

字符串时间:10:00 AM,对象时间:2000-01-01 04:30:00 +0000 //ios 11

对于 iOS v11,结果很好,但对于 iOS v10,结果是错误的,我想要 UTC 格式的结果。

我试过了:

1. formatter.timeZone = NSTimeZone.local
2. formatter.timeZone = TimeZone(identifier: "UTC")
3. formatter.timeZone = TimeZone.ReferenceType.system

【问题讨论】:

标签: ios swift xcode


【解决方案1】:

请添加这个(可能是因为您的系统正在选择当前时区)-

formatter.timeZone = TimeZone.init(abbreviation: “UTC”)

【讨论】:

  • 请告诉我-'class func StringToDate(format: String, date: String) -> Date{'中的日期参数的时区
  • 日期参数是字符串类型,不是Date对象,这里我将字符串日期转换为日期对象。
猜你喜欢
  • 2018-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-19
  • 2015-12-26
  • 2011-01-14
  • 2019-09-07
  • 2011-11-06
相关资源
最近更新 更多