gpt4 book ai didi

ios - DateComponents 似乎不尊重年份

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

我正在尝试将 Date 转换为 DateComponents,更改一些属性,然后获取新的 Date。我写了以下代码:

import Foundation
var components = Calendar.current.dateComponents(in: .current, from: Date())
components.day = 7
components.month = 3
components.year = 1900
DateFormatter.localizedString(from: components.date!, dateStyle: .long, timeStyle: .long)

我已经在 iOS 15.0 上的 iOS 模拟器上的 America/Denver 时区/区域设置以及运行最新 macOS Big Sur 和 Xcode 13.0 的 Mac 上的 Swift REPL 上测试了它,在撰写本文时,在这两个地方,我大约得到以下输出:

March 7, 2021 at 9:38:13 AM MST

除年份外,一切都符合预期。我已将年份明确设置为 1900,但输出中的年份为 2021。我怎样才能让 DateComponents 在生成日期时尊重年份,或者我怎样才能手动做同样的事情,这样它才能真正起作用?

最佳答案

如果您通过 dateComponents(in:from:) 从日期获取所有 组件,您还必须相应地设置 yearForWeekOfYear

components.yearForWeekOfYear = 1900

或者仅指定日期和时间组件,例如您真正需要的 calendartimeZone

var components = Calendar.current.dateComponents([.calendar, .timeZone, .year, .month, .day, .hour, .minute, .second], from: Date())
components.day = 7
components.month = 3
components.year = 1900
DateFormatter.localizedString(from: components.date!, dateStyle: .long, timeStyle: .long)

关于ios - DateComponents 似乎不尊重年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69679662/

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