2016-03-28 95 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");