以AM / PM显示12小时格式的当前时间
目前时间显示为13:35 PM但是我想用AM / PM显示为12小时格式,即1:35 PM而不是13:35 PM
目前的代码如下
private static final int FOR_HOURS = 3600000; private static final int FOR_MIN = 60000; public String getTime(final Model model) { SimpleDateFormat formatDate = new SimpleDateFormat("HH:mm a"); formatDate.setTimeZone(userContext.getUser().getTimeZone()); model.addAttribute("userCurrentTime", formatDate.format(new Date())); final String offsetHours = String.format("%+03d:%02d", userContext.getUser().getTimeZone().getRawOffset() / FOR_HOURS, Math.abs(userContext.getUser().getTimeZone().getRawOffset() % FOR_HOURS / FOR_MIN)); model.addAttribute("offsetHours", offsetHours + " " + userContext.getUser().getTimeZone().getDisplayName(Locale.ROOT)); return "systemclock"; }
通过使用date模式最简单的方法 – h:mm a
,其中
- h – 上午/下午的时间(1-12)
- 米 – 小时分钟
- 一个 – 上午/下午标记
代码片段:
DateFormat dateFormat = new SimpleDateFormat("hh:mm a");
阅读更多关于文档 – SimpleDateFormat的Java 7
使用这个SimpleDateFormat formatDate = new SimpleDateFormat("hh:mm a");
SimpleDateFormat的Java文档
使用"hh:mm a"
而不是"hh:mm a"
"HH:mm a"
。 这里hh
为12小时格式, HH
为24小时格式。
现场演示
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yy hh.mm.ss.S aa"); String formattedDate = dateFormat.format(new Date()).toString(); System.out.println(formattedDate);
产出:11-Sep-13 12.25.15.375 PM
SimpleDateFormat formatDate = new SimpleDateFormat("hh:mm:ss a");
-
h用于AM / PM时间(1-12)。
-
H用于24小时时间(1-24)。
-
a是AM / PM标记
-
小时是分钟
注意:两个h将打印一个前导零:01:13 PM。 一小时将打印没有前导零:1:13 PM。
看起来基本上每个人都打败了我,但我离题了
只要更换下面的声明,它将工作。
SimpleDateFormat formatDate = new SimpleDateFormat("hh:mm a");
//To get Filename + date and time SimpleDateFormat f = new SimpleDateFormat("MMM"); SimpleDateFormat f1 = new SimpleDateFormat("dd"); SimpleDateFormat f2 = new SimpleDateFormat("a"); int h; if(Calendar.getInstance().get(Calendar.HOUR)==0) h=12; else h=Calendar.getInstance().get(Calendar.HOUR) String filename="TestReport"+f1.format(new Date())+f.format(new Date())+h+f2.format(new Date())+".txt"; The Output Like:TestReport27Apr3PM.txt
使用Java 8
LocalTime localTime = LocalTime.now();
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(“hh:mm a”);
的System.out.println(localTime.format(dateTimeFormatter));
您将获得AM / PM格式的输出。
示例输出:下午3:00
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm a");
这将显示date和时间
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss a");
System.out.println(DateTimeFormatter.ofPattern("hh:mm").format(LocalTime.now())); //hh:mm will print hours in 12hrs clock and mins (eg 02:30) System.out.println(DateTimeFormatter.ofPattern("HH:mm").format(LocalTime.now())); //HH:mm will print hours in 24hrs clock and mins (eg 14:30) System.out.println(DateTimeFormatter.ofPattern("hh:mm a").format(LocalTime.now())); //hh:mm will print hours in 12hrs clock, mins and AM/PM (eg 02:30 PM)
你可以使用SimpleDateFormat。
SimpleDateFormat formatDate = new SimpleDateFormat("hh:mm a");
希望这可以帮助你。