2016-03-28 72 views
1

我想转换:日期转换,从12:00:00到00:00:00的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”的格式保存的,I要date.but我下面的代码

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(); 

取使用这个这个记录,但这是给我周二3月28日12:00:00北京时间2016,而我想年03月28日00:00:00 IST 2016,所以它会和数据库一样,并且会取回。

+1

所以......添加12小时? –

+2

[在Java中添加n小时到日期]可能的重复(http://stackoverflow.com/questions/3581258/adding-n-hours-to-a-date-in-java) – scrappedcola

+0

等等,这是真的吗?提前12小时或将时间格式从24小时转换为12小时时间格式?如果后者,不要忘记AM/PM后缀... – fge

回答

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

你可以只添加12小时date对象,具有calendar,例如:

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()); 
0

我觉得OP要格式化24H时间12H。

尝试是这样的:

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