java HOUR 和 HOUR_OF_DAY 都返回 12 小时时间

标签 java unix-timestamp hour

我正在使用以下代码尝试获取 unix 时间戳的 HOUR_OF_DAY (0-23),并将其转换为毫秒。时间戳“1296442971”转换为 Sun Jan 30 2011 22:02:51 GMT-0500 (EST)。

我正在运行以下代码来尝试获取 24 小时时间戳:

    //calculate the hour for this timestamp
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeZone(TimeZone.getTimeZone(tz));             
    calendar.setTimeInMillis(ts * 1000);
    int hour = calendar.get(Calendar.HOUR_OF_DAY);  
    int twelveHour = calendar.get(Calendar.HOUR);

在此示例中,“小时”和“十二小时”的值均为 10,而“小时”的值应为“22”。有人知道我的代码可能有什么问题吗?

谢谢!

最佳答案

假设 ts 是包含值 1296442971 的变量。我相信您没有将它声明为long类型,因此它可能会溢出

ts 更改为 long 类型后,下面的工作

long l = 1296442971;
calendar.setTimeInMillis(l * 1000);
out.println(calendar.getTime());
out.println(calendar.get(Calendar.HOUR_OF_DAY));
out.println(calendar.get(Calendar.HOUR));

关于java HOUR 和 HOUR_OF_DAY 都返回 12 小时时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4847716/

相关文章:

java - 判断api请求是来自CURL还是POSTMAN?

java - 如何通过多态性消除这个特定的 SWITCH 语句

linux - 接受日期作为 bash 脚本中的用户输入

PHP时间已过,删除秒前的 "and"

iphone - 在 UIDatePicker iphone 中选择日期时出现问题

java - 从 Instant.now() 生成的日期中提取日期、小时和分钟

sql-server - 计算 SQL Server 中每小时的行数,为之间的时间间隔附加零

java - Socket在同一台机器上的两个进程(起源于C和Java)之间进行通信

java - 如何阻止 maven-release-plugin 使用旧版本的 maven-gpg-plugin

python - 以毫秒为单位将 python 日期时间转换为时间戳