繁体   English   中英

使用 Swift 在 ISO8601 格式字符串中组合时间和日期

[英]Combining time and date in ISO8601 format string using Swift

我有两个 texfields 表示日期选择器中的日期和时间,但是当我解析字符串时只显示日期。 我想将日期和时间组合成 ISO8601 格式的字符串(例如2015-06-11T00:00:00.000Z )并将其发送到服务器。

您可以使用 NSCalendar 方法 dateBySettingHour 来做到这一点,如下所示:

Xcode 8.2.1 • Swift 3.0.2

let df = DateFormatter()
df.calendar = Calendar(identifier: .iso8601)
df.locale = Locale(identifier: "en_US_POSIX")
df.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z"
if let date = df.date(from:"2015-06-11T00:00:00.000Z") {
    let hour = 4
    if let dateWithTime = Calendar.current.date(bySettingHour: hour, minute: 0, second: 0, of: date) {
        let resultString = df.string(from: dateWithTime)
        print(resultString) // "2015-06-11T04:00:00.000Z"
    }
}

字符串是日期的文本表示,通常包括显式或隐式时区。 NSDate 表示 UTC 中的日期。

如果要添加一个小时,请将字符串转换为 NSDate,添加一个小时,然后将其转换为字符串。 例如,转换将考虑夏令时,其中凌晨 2:30 之后的一小时可能是凌晨 4:30。 或凌晨 2:30。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM