繁体   English   中英

Swift 带毫秒分量的日期格式

[英]Swift date format with millisecond component

全部,

我有一个日期格式"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" ,我需要设置毫秒值。 但是日期组件不提供毫秒属性。

下面是我在小时、分钟、秒中设置自定义值的代码。 我还需要将毫秒设置为 0/999 值。

static func getToadyStartInUTC() -> String{
    let todaydate = Date()
    let formatter = DateFormatter()
    
    var components = Calendar.current.dateComponents([.year, .month, .day, .hour], from: todaydate)
    components.hour = 0
    components.minute = 0
    components.second = 0

    let calendar = Calendar.current
    let startDate = calendar.date(from: components)!
    
    print("\(startDate)")
    
    formatter.timeZone = TimeZone(identifier: "UTC")
    formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
   return formatter.string(from: startDate)
}

如何在日期组件中设置毫秒值。 任何输入表示赞赏。 谢谢。

使用Calendar API 获取startDateISO8601DateFormatter的替代解决方案

static func getToadyStartInUTC() -> String {
    let todaydate = Date()
    var calendar = Calendar.current
    let timeZone = TimeZone(secondsFromGMT: 0)!
    calendar.timeZone = timeZone

    let startDate = calendar.startOfDay(for: todaydate)
    var components = calendar.dateComponents(in: timeZone, from: startDate)
    components.nanosecond = 999000000

    let formatter = ISO8601DateFormatter()
    formatter.formatOptions.insert(.withFractionalSeconds)
    return formatter.string(from: components.date!)
}
let todaydate = Date()
    var calendar = Calendar.current
     
    calendar.timeZone = TimeZone(identifier: "UTC")


    let startDate = calendar.startOfDay(for: todaydate)
    var components = calendar.dateComponents(in: timeZone, from: startDate)
    components.nanosecond = 999000000

    let formatter = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"

   
     formatter.string(from: components.date!)

暂无
暂无

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

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