Java 公历12小时24小时混乱
我使用GregorianCalendar获取时间值Java 公历12小时24小时混乱,java,mysql,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.SE
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点。我的理解正确吗?或者如何设置正确的时间?将
HOUR
和AM\u PM
组合在一起设置12小时时钟中的时间。例如,您的用例:
cal.set(Calendar.HOUR, 12);
cal.set(Calendar.AM_PM, Calendar.AM);
将时间设置为中午。或者,您可以使用HOUR\u OF_DAY
来使用24小时时钟:
cal.set(Calendar.HOUR_OF_DAY, 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);
除了“12 AM”应该是午夜。在文档中可以找到Calendar.HOUR的可能值为0-11