如何将 24 小时格式时间转换为 12 小时格式?

新手上路,请多包涵

在我的应用程序中,我想将给定的 CDT 格式的 24 小时字符串转换为 CDT 格式的 12 小时字符串,如何将给定的 24 小时格式字符串转换为 12 小时格式字符串?

原文由 ram 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 982
2 个回答

您可以尝试使用 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();
}

这是 SimpleDateFromat 的 javadoc 链接

原文由 Anantha Sharma 发布,翻译遵循 CC BY-SA 3.0 许可协议

下面是将 24 小时制转换为带有 AM 和 PM 的 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

另一个解决方案:

 System.out.println(hr%12 + ":" + min + " " + ((hr>=12) ? "PM" : "AM"));

原文由 Lalit Jawale 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题