日期格式化程序在swift中

时间:2018-04-23 09:18:27

标签: ios swift dateformatter

我想得到这种类型的甲酸盐 - > 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)

已经使用过这个格式化版画家.dateFormat =" MMMM d yyyy' hh:mm:ss a Z"

由于

3 个答案:

答案 0 :(得分:6)

您可以这样使用:

    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有关格式改进的信息

<强>输出:

enter image description here

答案 1 :(得分: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,请使用格式&#34; MMMM dd,yyyy&#39; at&#39; hh:mm:ss a ZZZZ&#34;

你得到的输出为

enter image description here

答案 2 :(得分:2)

如果您不希望小时为零,小时为单位数,请尝试此操作。您也不需要将NSTimeZone强制转换为TimeZone。您可以直接使用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

enter image description here