【问题标题】:Get my DateTime with unix timestamp and timezone in Swift iOS在 Swift iOS 中使用 unix 时间戳和时区获取我的 DateTime
【发布时间】:2019-07-10 22:39:47
【问题描述】:

我想获取某个时区的当前日期时间,这个页面是怎么做的:https://www.epochconverter.com/timezones?q=1562797726&tz=America%2FLos_Angeles 我输入 Unix 时间戳和 Horus 区域以获取日期时间。但我需要一个类似于此页面的 API Rest 来获取日期时间。

我尝试使用此 API https://unixtime.co.za/,但它已被弃用,我还没有发现任何类似的东西。 这是我需要发送到服务的内容: 邮政 {“UnixTimeStamp”:“1589772280”,“时区”:“+3”} 回复: {“日期时间”:“2020-05-18T06:24:40+03:00”}

发布 {“UnixTimeStamp”:“1589772280”,“时区”:“+3”}

回应: {“日期时间”:“2020-05-18T06:24:40+03:00”}

【问题讨论】:

  • 为什么需要一个 REST API 呢?为什么不能使用DateDateFormatter
  • 感谢您的回答。我需要用户不能修改日期时间,它由 unix 时间戳和时区决定,就像这个页面一样:epochconverter.com/…

标签: swift rest timezone unix-timestamp


【解决方案1】:

//你好,你测试一下这段代码。

让 dateString = format.string(from: currentDate)

    print("53.- dateString: \(dateString)") //2019-07-11T23:45:47+0800
    // 1) Set TimeZone's seconds from GMT. Since I am in Mexico_City this will be: 60*60*5 (18000)

    let timZone = TimeZone(identifier: "America/Mexico_City")!


    let timezoneOffset =  timZone.secondsFromGMT()
    print(TimeZone.current)// Asia/Hong_Kong (current)
    print("57timezoneOffset: \(timezoneOffset)")

    // 2) Get the current date (GMT) in seconds since 1970. Epoch datetime.
    let epochDate = currentDate.timeIntervalSince1970
    print("60.- epochDate: \(epochDate)")

    let timezoneEpochOffset = (epochDate + Double(timezoneOffset))
    print("66.- timezoneEpochOffset: \(timezoneEpochOffset)") //1562859947.513479

    let timeZoneOffsetDate = Date(timeIntervalSince1970: timezoneEpochOffset)
    print("69.- timeZoneOffsetDate: \(timeZoneOffsetDate)") //2019-07-11 10:45:47 +0000

【讨论】:

  • 这在用户没有修改自动时间时有效,即使它在不同的时区,但是当用户修改时间时,他不会返回相对于时区的小时小时.即使用户将时钟提前 n 小时,我如何才能获得正确的 unix 时间戳?
猜你喜欢
  • 2011-12-10
  • 1970-01-01
  • 2016-08-23
  • 2012-05-06
  • 2020-12-16
  • 2010-12-18
  • 1970-01-01
  • 2010-11-19
  • 2018-01-04
相关资源
最近更新 更多