gpt4 book ai didi

.net - 如何在 NodaTime 中获取 "start of the year/month"?

转载 作者:行者123 更新时间:2023-12-03 23:50:18 25 4
gpt4 key购买 nike

我知道有 DateTimeZone.AtStartOfDay 方法,但是是否有类似的方法来获取年/月的开始?我知道最简单的方法是将它们硬编码为“X 的第一天和 30 秒”(我做了 LocalDateTime start = LocalDateTime.FromDateTime(new DateTime(2014, 1, 1, 0, 0, 1, DateTimeKind. Utc));),但我认为这远非最佳实践

最佳答案

您当然不需要通过 DateTime - 但要在特定时区获得一年的开始,我只需使用:

var startOfYear = zone.AtStartOfDay(new LocalDate(year, 1, 1));

请注意,这对于获取 ZonedDateTime 和年初之间的持续时间 很有用。对于期间(例如 5 个月、2 天、3 小时),您只需要使用 LocalDateTime,它不会考虑时区。 (周期算术在时区面前变得很奇怪......)

要获得 LocalDateTime,您可以使用:

var startOfYear = new LocalDate(year, 1, 1).AtMidnight();

...虽然不能保证该日期/时间出现在任何特定时区(或只出现一次)。

关于.net - 如何在 NodaTime 中获取 "start of the year/month"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31935943/

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