格里高利历12小时24小时混乱

时间:2014-12-05 11:58:25

标签: 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点。我的理解是否正确?或者如何正确设置?

2 个答案:

答案 0 :(得分:3)

实际上你必须将小时设为午夜为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);   

答案 1 :(得分:0)

HOURAM_PM的组合将小时设置为12小时制。所以,例如,你的用例:

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

将小时设为中午。或者,您可以使用HOUR_OF_DAY来使用24小时制:

cal.set(Calendar.HOUR_OF_DAY, 12);