将时间字符串转换为同一天的 Unix 时间日期
Convert time string to Unix time date of the same day
如何将字符串小时转换为一天中的毫秒?
例如:
let strDate = "06:00 PM"
或者:
let strDate = "09:00 AM"
我的代码:
let dateString = "06:00 PM"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm"
guard let date = dateFormatter.date(from: dateString)
else { fatalError() }
print(date)
例如我的字符串是:06:00 PM,所以我想以毫秒为单位的日期是今天 2018 年 9 月 20 日星期四 06:00 PM
首先,您需要解析日期字符串:
let dateString = "06:00 PM"
let formatter = DateFormatter()
formatter.defaultDate = Date()
formatter.dateFormat = "hh:mm a"
formatter.locale = Locale(identifier: "en_US_POSIX")
let date = formatter.date(from: dateString)
然后,您需要获取一天的开始时间:
let calendar = Calendar.current
let start = calendar.startOfDay(for: date)
之后,得到date
和start
之间的时间间隔:
let timeInterval = date.timeIntervalSince(start)
let milliseconds = timeInterval * 1000.0
您可以将 DateFormatter 默认日期设置为今天的 startOfDay,在解析您的时间时将格式化程序区域设置设置为 "en_US_POSIX" 然后您可以简单地获取结果日期 timeIntervalSince1970 并乘以 1000:
let strTime = "06:00 PM"
let formatter = DateFormatter()
formatter.defaultDate = Calendar.current.startOfDay(for: Date())
formatter.locale = Locale(identifier: "en_US_POSIX")
formatter.dateFormat = "hh:mm a"
if let date = formatter.date(from: strTime) {
let milliseconds = date.timeIntervalSince1970 * 1000
print(milliseconds) // 1537477200000
let date2 = Date(timeIntervalSince1970: milliseconds/1000)
print(date2.description(with: .current)) // Thursday, September 20, 2018 at 6:00:00 PM Brasilia Standard Time
}
如何将字符串小时转换为一天中的毫秒?
例如:
let strDate = "06:00 PM"
或者:
let strDate = "09:00 AM"
我的代码:
let dateString = "06:00 PM"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm"
guard let date = dateFormatter.date(from: dateString)
else { fatalError() }
print(date)
例如我的字符串是:06:00 PM,所以我想以毫秒为单位的日期是今天 2018 年 9 月 20 日星期四 06:00 PM
首先,您需要解析日期字符串:
let dateString = "06:00 PM"
let formatter = DateFormatter()
formatter.defaultDate = Date()
formatter.dateFormat = "hh:mm a"
formatter.locale = Locale(identifier: "en_US_POSIX")
let date = formatter.date(from: dateString)
然后,您需要获取一天的开始时间:
let calendar = Calendar.current
let start = calendar.startOfDay(for: date)
之后,得到date
和start
之间的时间间隔:
let timeInterval = date.timeIntervalSince(start)
let milliseconds = timeInterval * 1000.0
您可以将 DateFormatter 默认日期设置为今天的 startOfDay,在解析您的时间时将格式化程序区域设置设置为 "en_US_POSIX" 然后您可以简单地获取结果日期 timeIntervalSince1970 并乘以 1000:
let strTime = "06:00 PM"
let formatter = DateFormatter()
formatter.defaultDate = Calendar.current.startOfDay(for: Date())
formatter.locale = Locale(identifier: "en_US_POSIX")
formatter.dateFormat = "hh:mm a"
if let date = formatter.date(from: strTime) {
let milliseconds = date.timeIntervalSince1970 * 1000
print(milliseconds) // 1537477200000
let date2 = Date(timeIntervalSince1970: milliseconds/1000)
print(date2.description(with: .current)) // Thursday, September 20, 2018 at 6:00:00 PM Brasilia Standard Time
}