Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将24小时时间转换为12小时时间?_Java_Android_Date - Fatal编程技术网

Java 将24小时时间转换为12小时时间?

Java 将24小时时间转换为12小时时间?,java,android,date,Java,Android,Date,您好,我正在使用一个android应用程序,我正在尝试找出如何将24小时的时间转换为12小时的时间 Example 24 hour format 12:18:00 to 12 hour format 12:18pm 您很可能需要了解Java 要以所需的格式显示数据,应使用以下内容: SimpleDateFormat sdf=new SimpleDateFormat("h:mm a"); sdf.format(dateObject); 请尝试使用: 试试这个代码 S

您好,我正在使用一个android应用程序,我正在尝试找出如何将24小时的时间转换为12小时的时间

Example 
24 hour format 12:18:00

to 
12 hour format 12:18pm

您很可能需要了解Java

要以所需的格式显示数据,应使用以下内容:

   SimpleDateFormat sdf=new SimpleDateFormat("h:mm a");
   sdf.format(dateObject);
请尝试使用:

试试这个代码

     String s= time ;

     DateFormat f1 = new SimpleDateFormat("kk:mm");
     Date d = null;
        try {
             d = f1.parse(s);
             DateFormat f2 = new SimpleDateFormat("h:mma");
             time = f2.format(d).toUpperCase(); // "12:18am"

    } catch (ParseException e) {

        // TODO Auto-generated catch block
            e.printStackTrace();
        }

使用SimpleDataFormat,但请注意HH与HH不同

假设我们的时间是18:20

以下格式将返回下午18:20

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm aa");
而此格式将返回下午6:20

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm aa");

希望这对您有所帮助……

如果您使用的是Java 8或Java 9,您可以使用如下库:

final String timein24Format = "22:10";

try {
    final SimpleDateFormat sdf = new SimpleDateFormat("H:mm");
    final Date dateObj = sdf.parse(timein24Format );
    String timein12Format=new SimpleDateFormat("K:mm a").format(dateObj));
} catch (final ParseException e) {
    e.printStackTrace();
}
String time = "22:18:00";
String result = LocalTime.parse(time).format(DateTimeFormatter.ofPattern("h:mma"));

输出

10:18PM

事实上,那应该是下午12点18分你是如何得到这个时间价值的?普通线?日期/时间/对象?时间戳?纯文本,很抱歉我没有声明它的格式是12:18:00btw ted:O已编辑,我的错误确保您正在写入h not h转换12:00noon时出现错误。当时间介于12:00和12:59之间时,AM和PM都报告为AM。Magesh提到的bug有任何修复吗?是的。。要修复该错误,请使用
DateFormat f1=newsimpledateformat(“HH:mm:ss”)仅供参考,这里显示的类设计糟糕且麻烦,现在是遗留的,被java.time类取代。这是现代的方法,也是2018年推荐的方法。在非全新Android上,当您将ThreeTenABP添加到您的Android项目中并确保从
org.threeten.bp
及其子包导入日期时间类时,它也会起作用。看,谢谢你@OleV.V。很高兴听到这些信息,随时向你学习
10:18PM