【问题标题】:Time formatting using SimpleDateFormat in java在 java 中使用 SimpleDateFormat 格式化时间
【发布时间】:2015-01-04 15:13:07
【问题描述】:

我的要求是以 hh:mm 格式在网页上显示日期。但是,如果是 1 位数字,则不应在小时值之前显示零。

例如 - 它应该显示为:上午 11:30、上午 9:15、下午 1:00。

我试图解决这个问题,但唯一的问题是从 1 位数小时值中删除额外的 0。

输入时间格式为-hh:mm:ss

日期值最初是一个字符串。它首先被解析为以下格式的日期 -

final SimpleDateFormat dfParse = new SimpleDateFormat("HH:mm:ss");
startTimeFmt = dfParse.parse(startTime);

然后将其格式化为以下格式 -

final SimpleDateFormat dfFormat = new SimpleDateFormat("hh:mm a");
startTime = dfFormat.format(startTimeFmt);

【问题讨论】:

标签: java time-format


【解决方案1】:

试试这个:

Date date = new SimpleDateFormat("hh:mm:ss").parse("07:15:45");
String newDate = new SimpleDateFormat("h:mm a").format(date);

这将打印7:15 AM

【讨论】:

    【解决方案2】:

    您是否尝试过 h:mm a 格式?

    来自文档 (http://pages.cs.wisc.edu/~cs368-2/JavaTutorial/jdk1.2/api/java/text/SimpleDateFormat.html):

    Examples Using the US Locale:
    
    Format Pattern                         Result
    --------------                         -------
    "yyyy.MM.dd G 'at' hh:mm:ss z"    ->>  1996.07.10 AD at 15:08:56 PDT
    "EEE, MMM d, ''yy"                ->>  Wed, July 10, '96
    "h:mm a"                          ->>  12:08 PM
    "hh 'o''clock' a, zzzz"           ->>  12 o'clock PM, Pacific Daylight Time
    "K:mm a, z"                       ->>  0:00 PM, PST
    "yyyyy.MMMMM.dd GGG hh:mm aaa"    ->>  1996.July.10 AD 12:08 PM
    

    干杯!

    【讨论】:

      【解决方案3】:

      试试这个

      DateFormat formatter = new SimpleDateFormat("h:mm:ss a", Locale.US);
      System.out.println(formatter.format(new Date()));
      

      【讨论】:

        猜你喜欢
        • 2014-07-23
        • 2012-05-05
        • 1970-01-01
        • 2012-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多