我使用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 :(得分: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)
HOUR
和AM_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);