java - 公历12小时24小时困惑

标签 java mysql

我正在使用 GregorianCalendar 来获取时间值。

public class Tester {

    public static void main(String[] args) {
        Calendar cal = GregorianCalendar.getInstance();
        cal.set(Calendar.HOUR, 12);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);
        cal.set(Calendar.AM_PM, Calendar.AM);
        System.out.println(cal.getTimeInMillis() + " " + cal);
    }
}

当我在 mysql 查询中使用 cal.getTimeInMillis() 时,它将时间解释为中午 12 点。我的理解正确吗?或者如何设置正确?

最佳答案

实际上,您必须将小时设置为 0 表示午夜,12 表示中午。

尝试下面的代码

cal.set(Calendar.AM_PM, Calendar.AM);
cal.set(Calendar.HOUR, 0);

或者第二种方式是

Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 0);   

关于java - 公历12小时24小时困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27315430/

相关文章:

python - 使用python在mysql查询中插入错误

mysql - 将 XA 事务与 JDBC、MySQL 和 Microsoft SQL Server 结合使用

php - 删除 MySQL 数据库中的重复行

java - Micronaut MySQL删除记录org.hibernate.HibernateException : No Session found for current thread

Mysql查询在计算特定项目所花费的总时间时出现错误

java - 如何在 SWT 中隐藏组合?

java - 运行时错误 NoSuchMethodError

javascript - ajax脚本不更新信息

java - 通过java代码发送电子邮件时出现SMTP异常

java - spring-boot-gradle-plugin 是否随 spring-boot 版本一起移动?