2016-10-21 52 views
0

我想以HHhMM格式显示时间。例如,如果时间是09:30 AM,我想将其显示为上午9点45分。我尝试以下方法: -如何以java格式显示HHhMM格式的时间?

import java.util.*; 
import java.text.*; 

public class PS6 { 

    public static void main(String args[]) { 
     Date dNow = new Date(); 
     SimpleDateFormat ft = 
     new SimpleDateFormat ("E yyyy.MM.dd 'at' HHhMM a"); 

     System.out.println("Current Date: " + ft.format(dNow)); 
    } 
} 

但前作产量

Current Date: Fri 2016.10.21 at 14210 PM 

这是不正确。

任何人都可以请在这帮助我。

+0

什么是你想看到正确的字符串? “HHhMM”格式中的小h是什么? –

+1

你尝试使用转义'新的SimpleDateFormat(“'yyyy.MM.dd'在'HH'h'MM a”);'? – DimaSan

+3

可能重复[如何在SimpleDateFormat中插入特殊字符?](http://stackoverflow.com/questions/2912149/how-can-i-insert-special-characters-in-simpledateformat) – DimaSan

回答

3

试试这个,

Date dNow = new Date(); 
SimpleDateFormat ft = new SimpleDateFormat("E yyyy.MM.dd 'at' HH'h'MM a"); 
System.out.println("Current Date: " + ft.format(dNow)); 
+0

非常感谢:) – user2142786

1

如果你使用这一个SimpleDateFormat ft = new SimpleDateFormat("E yyyy.MM.dd 'at' H'h'MM a");您将获得当前日期:在8h10 AM神父2016年10月21日。我认为这就是你要找的东西

1

与其他答案相比,你应该知道M代表月份而不是分钟,H代表24小时制,在am/pm-marker的背景下是有问题的。明确指定区域设置也是值得的。

所以请使用此模式来代替:

Date dNow = new Date(); 
SimpleDateFormat ft = new SimpleDateFormat("E yyyy.MM.dd 'at' hh'h'mm a", Locale.ENGLISH); 
System.out.println(
    "Current Date: " + ft.format(dNow)); // Current Date: Fri 2016.10.21 at 12h32 PM 
相关问题