gpt4 book ai didi

java - java中的月初和月末时间戳

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

我想要一个程序,在其中给出月份和年份,并且该程序应返回月份的开始和结束时间戳。

例如,如果我将 1 月和 2011 年传递给该方法,它将返回开始=1293840000结束=1296518400

有什么办法可以做到这一点吗?

最佳答案

乔达时间

使用 Joda-Time 可以更轻松地完成此类工作。图书馆。

时区

您应该指定时区,而不是依赖 JVM/主机的默认时区。似乎您需要 UTC(无时区偏移),因此您的代码应该明确说明。

半开

此外,把握一天中的最后一刻也很棘手。理论上,在第二天开始之前总会有另一个可整除的秒。虽然您想要解析为秒(Unix 项目),但两个常见 Java 库(java.util.Date/.Calendar 和 Joda-Time)使用毫秒,而 Java 8 中新的 java.time 库解析为纳秒。相反,日期时间工作通常使用“半开放”方法来完成,其中定义时间跨度,开始时包含,结束时排除 。因此,“一月”从 1 月 1 日第一个时刻2 月 1 日第一个时刻

示例

这里是 Joda-Time 2.3 中的一些示例代码。

DateTimeZone timeZone = DateTimeZone.UTC;
DateTime start = new DateTime( 2011, DateTimeConstants.JANUARY, 1, 0, 0, 0, timeZone).withTimeAtStartOfDay();
DateTime stop = start.plusMonths( 1 );

您可能会找到 Interval对相关工作感兴趣的类(class)。

Interval january2011 = new Interval( start, stop ); 

从毫秒转换为秒。

long secondsStart = start.getMillis()/1000L;
long secondsStop = stop.getMillis()/1000L;

关于java - java中的月初和月末时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23537475/

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