在我的应用程序,我有要求格式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