如何从标准datetime格式中提取日期和时间?

Rj19

我从API获取包含日期和时间的字符串,如下所示:

 createdAt = "2019-08-12T10:34:05.000Z"

我还需要从该字符串和时间中提取日期。又如何获得两个给定日期字符串之间的时间差?

例如,如果我有两个字符串:

StartedOn = "2019-08-12T10:32:18.000Z"
StopedOn = "2019-08-12T10:34:05.000Z".

如何获得从开始到停止的时间。

迅速4,Xcode 10

PGD​​ev

用于DateFormatter从中获取Date实例String,即

let str = "2019-08-12T10:34:05.000Z"
let formatter = DateFormatter()
formatter.locale = Locale(identifier: "en_US_POSIX")
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
let date = formatter.date(from: str)

现在,要获取时差,请使用timeIntervalSince(_:)2个Date对象,即

let startedOn = "2019-08-12T10:32:18.000Z"
let stoppedOn = "2019-08-12T10:34:05.000Z"
if let startedOnDate = formatter.date(from: startedOn), let stoppedOnDate = formatter.date(from: stoppedOn) {
    let timeInterval = stoppedOnDate.timeIntervalSince(startedOnDate)
    print(timeInterval)
}

如果您需要2个Date对象之间更详细的组件,请Calendar像这样使用对象,

if let startedOnDate = formatter.date(from: startedOn), let stoppedOnDate = formatter.date(from: stoppedOn) {
    let calendar = Calendar(identifier: .gregorian)
    let components = calendar.dateComponents([.hour, .minute, .second], from: startedOnDate, to: stoppedOnDate)
    print(components) //hour: 0 minute: 1 second: 47
}

编辑:

要获取datetimeDate对象分开

let str = "2019-08-12T10:34:05.000Z"
let formatter = DateFormatter()
formatter.locale = Locale(identifier: "en_US_POSIX")
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
if let date = formatter.date(from: str) {
    formatter.dateFormat = "hh:mm:ss a"
    let timeStr = formatter.string(from: date)
    print(timeStr) //add timeStr to your timeLabel here...

    formatter.dateFormat = "yyyy-MM-dd"
    let dateStr = formatter.string(from: date)
    print(dateStr) //add dateStr to your dateLabel here...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

日期时间转换-如何提取推断的格式?

如何仅从python datetime中提取日期?

AJAX jQuery。从SharePoint列表中提取日期和时间字段。为什么以时髦的格式显示?

R:如何从时间序列中提取日期

从日期时间对象中提取日期和月份

Flutter如何格式化从数据库中提取的日期和时间

如何从字符串格式时间戳中提取日期?

如何从DataFrame的列中提取日期和时间?

如何根据不同数据帧中的开始日期和结束日期从时间序列中提取数据?

从时间戳中提取小时和分钟,但将其保留为日期时间格式

在R中提取日期和时间

如何从datetime sql中提取时间

如何从Java中的字符串时间戳记中提取日期和时间

从ID中提取日期和时间

如何从Datetime中提取时间

仅从datetime中提取日期以计算PHP中的总时间

如何从 Kibana 和 Elastisearch 的日期时间中提取月份?

从 Howard Hinnant 的日期库中提取日期和时间

从日期/时间格式中提取时间

使用日期和时间从单元格中提取日期

如何从时间戳对象和日期时间对象数组中提取值

如何使用标准 SQL 在 Google Bigquery 中将日期时间转换为日期,或者如何从日期时间的 where 语句中提取年份?

如何使用我自己的函数从时间序列的 POSIXct 元素中提取日期和时间?

从 R 中的日期时间字段中提取日期和时间

从混合的日期和时间 Google 表格中提取时间

如何从日期时间中提取时间并绘制直方图

从日期时间中提取时间分量(格式 - HH:MM:SS 和 HH:MM)

如何仅从时间戳中提取日期?

从 oracle 中提取日期和时间