如何将字符串 2019-03-29T10:45-05:00[America/Chicago] 转换为本地日期?
How to convert string 2019-03-29T10:45-05:00[America/Chicago] to localdate?
selectedStart = "2019-03-29T10:45-05:00[America/Chicago]";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate parsedDate = LocalDate.parse(selectedStart, formatter);
我从表视图行中获取 selectedStart
字符串并尝试将其转换为 LocalDate
但出现错误:
Text '2019-03-29T10:45-05:00[America/Chicago]' could not be parsed, unparsed text found at index 10
我只想要 yyyy-MM-dd
格式的日期,不想获取分钟、秒、时区等...
这应该足够了。请注意,我在第一个转换中使用了完整日期 pattern,这是必需的(parse
会抛出 DateTimeParseException
)。
final String selectedStart = "2019-03-29T10:45-05:00[America/Chicago]";
final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mmXXX'['VV']'");
final LocalDate parsedDate = LocalDate.parse(selectedStart, formatter);
ZonedDateTime.parse( … ).toLocalDate
您输入的字符串采用标准 ISO 8601 格式,但经过扩展以在方括号中附加时区名称。这种扩展格式正是 ZonedDateTime
class.
中默认使用的格式
ZonedDateTime.parse( "2019-03-29T10:45-05:00[America/Chicago]" )
如果您只需要没有时间和时区的日期,则从中提取 LocalDate
。
LocalDate ld =
ZonedDateTime.parse( "2019-03-29T10:45-05:00[America/Chicago]" )
.toLocalDate() ;
selectedStart = "2019-03-29T10:45-05:00[America/Chicago]";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate parsedDate = LocalDate.parse(selectedStart, formatter);
我从表视图行中获取 selectedStart
字符串并尝试将其转换为 LocalDate
但出现错误:
Text '2019-03-29T10:45-05:00[America/Chicago]' could not be parsed, unparsed text found at index 10
我只想要 yyyy-MM-dd
格式的日期,不想获取分钟、秒、时区等...
这应该足够了。请注意,我在第一个转换中使用了完整日期 pattern,这是必需的(parse
会抛出 DateTimeParseException
)。
final String selectedStart = "2019-03-29T10:45-05:00[America/Chicago]";
final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mmXXX'['VV']'");
final LocalDate parsedDate = LocalDate.parse(selectedStart, formatter);
ZonedDateTime.parse( … ).toLocalDate
您输入的字符串采用标准 ISO 8601 格式,但经过扩展以在方括号中附加时区名称。这种扩展格式正是 ZonedDateTime
class.
ZonedDateTime.parse( "2019-03-29T10:45-05:00[America/Chicago]" )
如果您只需要没有时间和时区的日期,则从中提取 LocalDate
。
LocalDate ld =
ZonedDateTime.parse( "2019-03-29T10:45-05:00[America/Chicago]" )
.toLocalDate() ;