[英]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 获取startDate
和ISO8601DateFormatter
的替代解决方案
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.