2

我想获得这种类型的甲酸盐-> 2018 年 4 月 20 日晚上 9:02:00 UTC+5:30 获取 Firestore 时间戳。我已经尝试过这段代码,但没有像上面那样得到正确的甲酸盐。

let date = Date()
let formatter = DateFormatter()

formatter.dateFormat = "MMMM d yyyy hh:mm:ss a Z"
formatter.timeZone = NSTimeZone(name: "IST") as TimeZone?

let result = formatter.string(from: date)
print(result)

已经使用这个格式化程序 formatter.dateFormat = "MMMM d yyyy'T'hh:mm:ss a Z"

谢谢

4

3 回答 3

7

你可以这样使用:

    let date = Date()
    let formatter = DateFormatter()
    formatter.dateFormat = "MMMM dd, yyyy 'at' hh:mm:ss a 'UTC'Z" //If you dont want static "UTC" you can go for ZZZZ instead of 'UTC'Z.
    formatter.timeZone = TimeZone(abbreviation: "IST")
    let result1 = formatter.string(from: date)
    print(result1)

注意:如果不希望UTC在字符串中是静态的,也可以使用格式"MMMM dd, yyyy 'at' hh:mm:ss a ZZZZ"

谢谢Larme格式改进

输出:

在此处输入图像描述

于 2018-04-23T09:25:43.973 回答
4

喜欢

    let formatter = DateFormatter()
    //If you want it in your specific format you can simply add 'UTC'
    formatter.dateFormat = "MMMM dd, yyyy 'at' hh:mm:ss a 'UTC'Z"
    formatter.timeZone = NSTimeZone(name: "IST") as TimeZone?
    let result = formatter.string(from: Date())
    print(result)

注意:如果要为字符串设置 currentTimezone,请使用格式“MMMM dd, yyyy 'at' hh:mm:ss a ZZZZ”

你得到的输出为

在此处输入图像描述

于 2018-04-23T09:27:33.010 回答
2

如果您不想在小时内前导零,当小时有一位数时,请尝试此操作。此外,您不需要将 NSTimeZone 类型转换为 TimeZone。您可以直接使用时区。

let date = Date()
let formatter = DateFormatter()
formatter.dateFormat = "MMMM dd, yyyy 'at' h:mm:ss a 'UTC'Z"
formatter.timeZone = TimeZone(abbreviation: "IST")
let result = formatter.string(from: date)
print(result)

2018 年 4 月 23 日下午 3:09:01 UTC+0530

在此处输入图像描述

于 2018-04-23T09:41:23.330 回答