在我的應用程序,我有要求格式12小時時間到24小時time.What是我必須使用的方法?轉換從12小時的時間到24小時的時間在java
例如,像10:30 AM那樣的時間。我怎樣才能轉換到24小時在Java?
在我的應用程序,我有要求格式12小時時間到24小時time.What是我必須使用的方法?轉換從12小時的時間到24小時的時間在java
例如,像10:30 AM那樣的時間。我怎樣才能轉換到24小時在Java?
嘗試這種情況:
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
public static void main(String [] args) throws Exception {
SimpleDateFormat displayFormat = new SimpleDateFormat("HH:mm");
SimpleDateFormat parseFormat = new SimpleDateFormat("hh:mm a");
Date date = parseFormat.parse("10:30 PM");
System.out.println(parseFormat.format(date) + " = " + displayFormat.format(date));
}
}
其產生:
10:30 PM = 22:30
參見:http://download.oracle.com/javase/1.5.0/docs/api/java/text/SimpleDateFormat.html
SimpleDateFormat parseFormat = new SimpleDateFormat("hh:mm a");
由Bart煮布鍋答案提供應改爲somethig像
SimpleDateFormat parseFormat = new SimpleDateFormat("hh:mm a",Locale.UK);
嘗試這個
public static String convertTo24Hour(String Time) {
DateFormat f1 = new SimpleDateFormat("hh:mm a"); //11:00 pm
Date d = null;
try {
d = f1.parse(Time);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DateFormat f2 = new SimpleDateFormat("HH:mm");
String x = f2.format(d); // "23:00"
return x;
}
在Java 8及更高版本中,它可以使用類java.time.LocalTime在一行中完成。代碼示例:
String result = LocalTime.parse(time, DateTimeFormatter.ofPattern("hh:mm a")).format(DateTimeFormatter.ofPattern("HH:mm"));
我一直在尋找同樣的事情,但在數量上,從整數XX小時XX分和AM/PM 24小時格式XX小時XX分手段,所以在這裏我做了什麼:
private static final int AM = 0;
private static final int PM = 1;
/**
* Based on concept: day start from 00:00AM and ends at 11:59PM,
* afternoon 12 is 12PM, 12:xxAM is basically 00:xxAM
* @param hour12Format
* @param amPm
* @return
*/
private int get24FormatHour(int hour12Format,int amPm){
if(hour12Format==12 && amPm==AM){
hour12Format=0;
}
if(amPm == PM && hour12Format!=12){
hour12Format+=12;
}
return hour12Format;
}`
private int minutesTillMidnight(int hour12Format,int minutes, int amPm){
int hour24Format=get24FormatHour(hour12Format,amPm);
System.out.println("24 Format :"+hour24Format+":"+minutes);
return (hour24Format*60)+minutes;
}
在Java中8使用本地時間,本地時間具有像getHour()
或getMinute()
方法許多有用的方法,
例如,
LocalTime intime = LocalTime.parse(inputString, DateTimeFormatter.ofPattern("h:m a"));
String outtime = intime.format(DateTimeFormatter.ISO_LOCAL_TIME);
在某些情況下,僅第一行就可以進行所需的解析
Duplicate Answer;請參閱[原始答案雲](https://stackoverflow.com/a/37388524/642706)。而且這裏看到的代碼失敗了,因爲省略了問題數據中的空格。 –
LocalTime默認情況下會提供24小時格式,因此第一行本身會提供所需的格式,無需再次格式化,我無權評論Cloud的答案 – venkata
您*只是*有時間還是日期? –
@JonSkeet:只有時間 – Swift