問題描述
我想使用 Date 和 Calendar 類計算 java 中兩個日期/時間之間的差異.我的格式是2012-01-24 12:30:00 PM".
I want to calculate the difference between two date/time in java using Date and Calendar classes. The format that I have is "2012-01-24 12:30:00 PM".
我已經實現了我自己的方法,并在谷歌上搜索它以與其他人一起工作,但沒有得到正確的提示來處理 AM 和 PM 值.
I have implemented my own method and also google it to work with others, but haven't getting the right hint to handle AM and PM values.
只要時間中有 12(AM/PM),日期/時間差異就會受到影響.例如,如果我的日期/時間為2012-01-24 12:30:00 PM"和2012-01-24 02:30:00 PM",則顯示時差為 10 小時.
The date/time difference got troubled whenever the time have 12(AM/PM) in it. For example if I have date/time "2012-01-24 12:30:00 PM" and "2012-01-24 02:30:00 PM" it shows the difference is 10 hours.
考慮 此鏈接上的代碼 如何修改它來處理 AM 和 PM.
Considering the code on this link how can it be modified to handle AM and PM.
要將字符串日期轉換為日期,我使用以下代碼:
To convert String date into Date I use following code:
String sessionTimeStart = "2012-01-24 12:30:00 PM";
String sessionTimerEndOrCurrent = "2012-01-24 02:30:00 PM";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a");
Date d1 = null;
Date d0 = null;
try {
d1 = format.parse(sessionTimeStart);
d0 = format.parse(sessionTimerEndOrCurrent);
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
推薦答案
問題是你的日期格式:而不是 yyyy-MM-dd HH:mm:ss a
使用 yyyy-MM-dd hh:mm:ss a
.
The problem is your date format: instead of yyyy-MM-dd HH:mm:ss a
use yyyy-MM-dd hh:mm:ss a
.
HH
將是一天中的小時 (0-23),而 hh
將是 AM/PM (1-12) 中的小時.因此,您的日期格式 02:30:00 將被解析為那樣,而不是被轉換為 PM 版本(一天中的小時為 14:30:00).
HH
will be the hour in day (0-23) whereas hh
will be the hour in AM/PM (1-12). Thus with your date format 02:30:00 will be parsed as just that instead of being converted to the PM version (which in hour of day would be 14:30:00).
這篇關于考慮 AM/PM 計算 Java 中的日期/時間差的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!