我正在使用 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/