【问题标题】:How to get this date format "2022-06-18_21:31:17.568-07:00"如何获取此日期格式“2022-06-18_21:31:17.568-07:00”
【发布时间】:2017-10-10 06:21:30
【问题描述】:

为了在 JAVA 中获得像 "2022-06-18_21:31:17.568-07:00" 这样的日期,我需要做什么格式

yyyy-MM-dd'_'HH:mm:ss.SSSX 

这是我正在尝试使用的,但在这个结果中就像

2017-10-10_11:43:56.336+05

我真正需要的是2022-06-18_21:31:17.568-07:00

【问题讨论】:

  • 我对这个问题投了反对票,因为没有任何研究的证据。请edit 您的问题包括您所做的研究以及准确您遇到困难的地方。如果你能做到这一点,我可能会撤回我的反对票。
  • 在您的日期格式字符串中使用XXX 而不是X 以获取-07:00 格式而不是-07

标签: java spring datetime simpledateformat


【解决方案1】:

使用yyyy-MM-dd'_'HH:mm:ss.SSSXXX 这样的格式而不是yyyy-MM-dd'_'HH:mm:ss.SSSX

【讨论】:

    【解决方案2】:

    tl;博士

    ZonedDateTime.of( 
                     LocalDate.of( 2022 , 6 , 18 ) ,
                     LocalTime.of( 21 , 31 , 17 , 568_000_000 ) ,
                     ZoneId.of( "America/Los_Angeles" ) 
                 ) 
                 .format( DateTimeFormatter.ISO_OFFSET_DATE_TIME ) 
                 .replace( "T" , "_" )
    

    ISO 8601

    您所需的格式几乎符合 java.time 类使用的标准ISO 8601 格式。将标准格式中间的T 替换为您想要的下划线。

    我强烈建议坚持标准,保留T,而不是发明自己的格式。

    java.time

    现代方法使用 java.time 类。

    避免使用SimpleDateFormat,因为它是麻烦的旧日期时间类的一部分。现在被 java.time 取代。特别是这里的ZonedDateTime 类。

    ZoneId z = ZoneId.of( "America/Los_Angeles" ) ;
    ZonedDateTime zdt = ZonedDateTime.now( z ) ;
    String output = zdt.toString() ;
    

    java.time 类中的toString 方法默认使用标准的ISO 8601 格式。在ZonedDateTime 的情况下,该格式被明智地扩展为在方括号中附加时区名称,除了与UTC 的偏移量。

    zdt.toString(): 2017-07-23T01:23:45.678-07:00[America/Los_Angeles]

    DateTimeFormatter

    如果你坚持,你可以删除附件,尽管它确实提供了有价值的信息。

    或者您可以使用替代的DateTimeFormatter 对象生成字符串,其中一个作为常量内置:DateTimeFormatter.ISO_OFFSET_DATE_TIME

    DateTimeFormatter f = DateTimeFormatter.ISO_OFFSET_DATE_TIME ;
    String output = z.format( f ) ;
    

    如果你坚持,你可以用你的下划线代替。

    String modified = output.replace( "T" , "_" ) ;
    

    2017-07-23_01:23:45.678-07:00

    【讨论】:

      猜你喜欢
      • 2014-09-23
      • 2022-07-28
      • 2018-05-21
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 2019-05-14
      • 2011-04-06
      相关资源
      最近更新 更多