在我的应用程序中,我想将给定的CDT格式化24小时字符串转换为CDT格式的12小时字符串,如何将给定的24小时格式字符串转换为12小时格式字符串?
Lal*_*ale 63
以下是使用AM和PM将24小时制转换为12小时制的代码.如果你不想AM/PM则只需更换hh:mm a
用hh:mm
.
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
public static void main(String [] args) throws Exception {
try {
String _24HourTime = "22:15";
SimpleDateFormat _24HourSDF = new SimpleDateFormat("HH:mm");
SimpleDateFormat _12HourSDF = new SimpleDateFormat("hh:mm a");
Date _24HourDt = _24HourSDF.parse(_24HourTime);
System.out.println(_24HourDt);
System.out.println(_12HourSDF.format(_24HourDt));
} catch (Exception e) {
e.printStackTrace();
}
}
}
//OUTPUT WOULD BE
//Thu Jan 01 22:15:00 IST 1970
//10:15 PM
Run Code Online (Sandbox Code Playgroud)
另一种方案:
System.out.println(hr%12 + ":" + min + " " + ((hr>=12) ? "PM" : "AM"));
Run Code Online (Sandbox Code Playgroud)
Ana*_*rma 56
您可以尝试使用SimpleDateFormat
对象转换时间格式.
final String time = "23:15";
try {
final SimpleDateFormat sdf = new SimpleDateFormat("H:mm");
final Date dateObj = sdf.parse(time);
System.out.println(dateObj);
System.out.println(new SimpleDateFormat("K:mm").format(dateObj));
} catch (final ParseException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
这是SimpleDateFromat 的javadoc 链接.
Clo*_*oud 11
在Java 8中,可以使用class在一行中完成java.time.LocalTime
.
代码示例:
String result = LocalTime.parse(time, DateTimeFormatter.ofPattern("HH:mm")).format(DateTimeFormatter.ofPattern("hh:mm a"));
Run Code Online (Sandbox Code Playgroud)
对于早期的Android,请使用适用于ThreeTenABP项目中的Android 的ThreeTen- Backport项目.请参阅如何在Android项目中使用ThreeTenABP.
对于api版本较低的用户,请在12:00 AM或PM且min <10以下
String time = ((hourOfDay > 12) ? hourOfDay % 12 : hourOfDay) + ":" + (minute < 10 ? ("0" + minute) : minute) + " " + ((hourOfDay >= 12) ? "PM" : "AM")
Run Code Online (Sandbox Code Playgroud)
输出例如 0:0 AM
12:00 PM
9:09 AM
感谢@Lalit Jawale的回答
归档时间: |
|
查看次数: |
63024 次 |
最近记录: |