【问题标题】:how can I format a date in java with "ff"?如何用“ff”在java中格式化日期?
【发布时间】:2011-08-31 22:59:13
【问题描述】:

我正在尝试使用以下格式打印日期:

"HHmmssff" 

我正在使用SimpleDateFormatter。 它失败是因为它无法识别"ff"。 还有其他可以的格式化程序吗? 或者有其他方法吗?

【问题讨论】:

    标签: java date date-formatting


    【解决方案1】:

    也许您正在寻找FF 而不是ff,就像使用的here

    【讨论】:

      【解决方案2】:

      f 不是 SimpleDateFormat 的有效值。

      F 表示月份中的星期几,这可能就是您要查找的内容。

      【讨论】:

      【解决方案3】:

      如果您正在寻找以分数(毫秒)为单位打印秒,此示例将很有帮助。

      public class DateFormatter {
          public static void main(String[] args) {
              Date date = Calendar.getInstance().getTime();
              DateFormat formatter = new SimpleDateFormat("EEEE, dd MMMM yyyy, hh:mm:ss.SSS a");
              String today = formatter.format(date);
              System.out.println("Today : " + today);
          }
      }
      

      输出: 今天:2011 年 5 月 24 日,星期二,晚上 7:23:30.627

      您会在格式化程序中看到 SSS 为您返回秒的分数。

      【讨论】:

      • SSS 是毫秒,所以它几乎是你想要的;只需要截掉一个多余的数字(必须根据 ss64.com/ps/syntax-dateformats.html 截断,不四舍五入)。所以只需在上面的代码中添加today = today.substring(0, today.length() - 2);
      • @toto 不需要执行子字符串来删除来自格式化程序字符“a”的 AM/PM。
        只需从格式化程序中删除“a”。即 formatter = new SimpleDateFormat("hh:mm:ss.SSS")
      【解决方案4】:

      S 给你毫秒:

      DateFormat formatter = new SimpleDateFormat ("hhmmssS");
      

      使用子串,你可以截掉最后2位:

      String d = formatter.format (new Date ());
      System.out.println (d.substring (0, 7));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-01-19
        • 1970-01-01
        • 2014-11-08
        • 2023-03-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多