代码之家  ›  专栏  ›  技术社区  ›  Savvas Dalkitsis

Java中人类可读和可解析的日期格式

  •  20
  • Savvas Dalkitsis  · 技术社区  · 16 年前

    6 回复  |  直到 16 年前
        1
  •  46
  •   ChssPly76    16 年前

    java.text.SimpleDateFormat

    SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss.SSS");
    Date dt = new Date();
    String S = sdf.format(dt); // formats to 09/23/2009 13:53:28.238
    Date dt2 = sdf.parse(S); // parses back
    
        2
  •  5
  •   Unihedron    11 年前
        3
  •  4
  •   mikera    10 年前

    选择一种格式

    在未来的某个遥远的时刻,你会为你的开发人员同事省去很多痛苦——把它看作是好的因果报应:-)

        4
  •  2
  •   Erik Tjernlund    16 年前

    ISO 8601

    ISO 8601 格式。

    • 它很灵活,它包括秒和几分之一秒(如果有的话),但如果它们是0,你也可以省略它们。
    • 它是标准的,因此越来越多的工具对其进行格式化和解析。非常适合存储或数据交换的序列化。
    • 2009-10-22T21:13:14 ,我应该说它非常人性化(尽管 T
    • another answer ,只要年份在1000到9999的四位数范围内。
    • java.time toString 方法。

    :

    LocalDateTime dateTime = LocalDateTime.of(2009, 10, 22, 21, 13, 14);
    String readableString = dateTime.toString();
    System.out.println(readableString);
    LocalDateTime parsedBack = LocalDateTime.parse(readableString);
    System.out.println(parsedBack);
    

    这将打印两条相同的线:

    2009-10-22T21:13:14
    2009-10-22T21:13:14
    

    后者 System.out.println() toString() 再一次,所以这不应该令人惊讶。

        5
  •  2
  •   Basil Bourque    8 年前

    有点离题,但我总是觉得有必要提醒人们DateFormat和SimpleDateFormat不是线程安全的!Sun文档清楚地说明了这一点,但我一直在野外发现人们将SimpleDateFormat粘贴在静态中的代码。..

        6
  •  2
  •   cellepo    8 年前

    java.time.Instant :

    (new Date()).toInstant.toString();