6
我试图创建一个'固定'时间(24小时制,午夜时间格式,即00:00:00)设置为SQL SELECT查询使用的字符串以下...GregorianCalendar /日历并设置小时字段奇怪
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
GregorianCalendar todayDate = new GregorianCalendar();
Log.d(TAG, "todayDate: " + todayDate.getTime().toString());
Log.d(TAG, "formatted todayDate: " + sdf.format(todayDate.getTime()));
todayDate.clear(Calendar.HOUR);
todayDate.clear(Calendar.MINUTE);
todayDate.clear(Calendar.SECOND);
todayDate.set(Calendar.HOUR, 0);
todayDate.set(Calendar.MINUTE, 0);
todayDate.set(Calendar.SECOND, 0);
Log.d(TAG, "formatted modified todayDate: " + sdf.format(todayDate.getTime()));
这很好,除非当前时间是PM。例如,
todayDate: Fri Jan 28 23:34:34 GMT 2011
formatted todayDate: 2011-01-28 23:34:34
formatted modified todayDate: 2011-01-28 12:00:00 <- THE hour is 12 not 00
如果我这样做,在当前时间为午夜和正午之间(即00:00:00 - >上午11时59分59秒),那么我的格式化字符串以小时为正确设置为00.如果我在中午和午夜之后的任何时间执行此操作,那么我的小时数为12,而不是00.
有没有人可以解释此问题并帮助我找到修复方法(或其他替代方法)请?
Aaargh!我不敢相信这很简单。谢谢。 – Squonk 2011-01-28 01:25:36