日期转换从12:00:00到00:00:00 java

时间:2016-03-28 15:09:28

标签: java

我想转换:

 Tue Mar 28 12:00:00 IST 2016 time format
     INTO
 Tue Mar 28 00:00:00 IST 2016

我该怎么做?

=================
实际上 在数据库中,我的日期以" Tue Mar 28 00:00:00 IST 2016"的格式保存,我想使用此日期获取此记录。但我的以下代码

Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.HOUR, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.clear(Calendar.MILLISECOND);
        return calendar.getTime();

但是这给了我 Tue Mar 28 12:00:00 IST 2016 ,而我想 3月28日00:00:00 IST 2016 ,所以它会与数据库一相同,并将获取。

3 个答案:

答案 0 :(得分:2)

您需要Calendar.HOUR_OF_DAY常量,用于24小时制,而不是Calendar.HOUR

Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.HOUR_OF_DAY, 0); // <-- here
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.clear(Calendar.MILLISECOND);

答案 1 :(得分:1)

您可以使用datecalendar对象添加12小时,例如:

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = format.parse("2016-03-28");
System.out.println(date);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.HOUR, 12);
System.out.println(calendar.getTime());

答案 2 :(得分:0)

我认为OP希望将24小时格式化为12H。

尝试这样的事情:

SimpleDateFormat formatDate = new SimpleDateFormat("hh:mm a");