以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"); 

希望这可以帮助你。