gpt4 book ai didi

datetime - Swift 3 将日期截断为日/月/年开始的简单方法

转载 作者:行者123 更新时间:2023-12-04 04:46:59 25 4
gpt4 key购买 nike

有什么简单的方法可以像我们在 Oracle 数据库中那样截断日期吗?
例如,我需要从午夜开始设置值。在 Oracle 中,我可以执行 TRUNC(SYSDATE)。但是我在 Swift 中看不到类似的方法。
我检查了 StackOverflow,看到了一些 DateFormatter 的例子,Date Components 将 Date 转换为 String。我也看过this question ,但不明白如何处理日期(不是 NSDate)类型和我

但我不需要字符串值。我想避免转换为字符串并返回日期。我只想获得三个值:

当前日期的开始(就像我们在 Oracle 中做 TRUNC(SYSDATE) 一样)

月初(就像我们在 Oracle 中执行 TRUNC(SYSDATE, 'MONTH') 一样)

年初(就像我们在 Oracle 中执行 TRUNC(SYSDATE, 'YEAR') 一样)

我试过这个,但它不会在午夜返回:

let comp: DateComponents = Calendar.current.dateComponents([.year, .month, .day], from: Date())
let truncated = Calendar.current.date(from: comp)!

enter image description here

我该怎么办?

最佳答案

请注意 +0000在您的样本中的时间结束时。

一天的开始在哪里?我更新了示例以显示您想要的内容。

var comp: DateComponents = Calendar.current.dateComponents([.year, .month, .day], from: Date())
comp.timeZone = TimeZone(abbreviation: "UTC")!
let truncated = Calendar.current.date(from: comp)!
print(truncated)

它打印 2017-06-14 00:00:00 +0000 .再次注意末尾的 +0000。

默认时区设置为当前时区,该时区中的小时、分钟和秒为 0。

我会假设你想要当前的时区。根据该规定,您的代码是正确的。

关于datetime - Swift 3 将日期截断为日/月/年开始的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44554048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com