春季日期时间格式



我想在Spring中获得当前日期和时间并格式化它。我使用LocalDateTime获取当前日期,但它是这样的:2021-08-23T18:24:36.229362200

并希望以这种格式获得它:"MM/dd/yyyy h:mm a"我试过了:

LocalDateTime localDateTime = LocalDateTime.now(); //ziua de azi
String d = localDateTime.toString();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM//dd//yyyy h:mm a");
localDateTime = LocalDateTime.parse(d, formatter);

但是我得到以下错误:

文本' 20121-08-23t18:26:37.002166200'无法在索引2处解析

请问我该如何格式化它?

br

ZonedDateTime
.now()
.format(
DateTimeFormatter.ofPattern( "MM/dd/uuuu h:mm a" )   
)

或者,最好是显式的,而不是隐式地依赖默认值。也许最好是自动定位。

ZonedDateTime
.now(
ZoneId.of( "Europe/Bucharest" )
)
.format(
DateTimeFormatter
.ofLocalizedDateTime( FormatStyle.SHORT ) 
.withLocale( 
new Locale( "ro" , "RO" )   // Romanian in Romania.
)
)

查看此代码运行在IdeOne.com。

24.08.2021, 04:09

Locale.US代替产生:

8/24/21, 4:11 AM

<标题>

详细信息我无法想象一个场景调用LocalDateTime.now()是正确的事情去做。这个类缺乏时区或偏移量的概念,因此它不能表示时间中的特定时刻。

InstantOffsetDateTimeZonedDateTime表示时间线上的某个时刻。

要捕获在特定时区中看到的当前时刻,请使用ZonedDateTime

ZoneId z = ZoneId.systemDefault() ;  // Or specify a zone. 
ZonedDateTime zdt = ZonedDateTime.now( z ) ;

java。时间自动为您定位。

Locale locale = new Locale( "ro" , "RO" ) ;  // For Romanian in Romania. Or `Locale.US`, etc.
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDateTime( FormatSyle.SHORT ).withLocale( locale );
String output = zdt.format( f ) ;

或者您可以硬编码特定的格式。不要像Question中那样使用对斜杠字符。

DateTimeFormatter f = DateTimeFormatter.ofPattern( "MM/dd/uuuu h:mm a" ) ;

我在你的问题或代码中没有看到关于Spring的任何具体内容。这些是一般的Java问题。

LocalDateTime localDateTime = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy h:mm a");
String formattedDate = localDateTime.format(formatter);
System.out.println(formattedDate);

相关内容

  • 没有找到相关文章

最新更新