Kotlin 日期时间解析异常 [英] Kotlin DateTimeParseException

查看:38
本文介绍了Kotlin 日期时间解析异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

https://api.spacexdata.com/v3/launches 获取日期该日期的格式为:2006-03-25T10:30:00+12:00.我想将其转换为dd、mm、yyyy",但总是出现错误:java.time.format.DateTimeParseException: 无法解析文本 '2006-03-25T10:30:00+12:00',在索引 10 处找到未解析的文本"

Getting date from https://api.spacexdata.com/v3/launches This date have format: 2006-03-25T10:30:00+12:00. I want convert it to "dd, mm, yyyy", but always getting error: "java.time.format.DateTimeParseException: Text '2006-03-25T10:30:00+12:00' could not be parsed, unparsed text found at index 10"

我的代码:

val formatter = DateTimeFormatter.ofPattern("dd, mm, yyyy", Locale.US)
val myDate = LocalDate.parse(launchDate, formatter)

var launchDateConverted: String=  myDate.toString()

我在字符串中获取数据,然后将其转换为日期以进行格式化,然后将日期转换回要在 UI 上显示的字符串.我使用了不同的方法,但找不到正确的方法.我当前的语言环境是RU".

i getting data at String, then i convert it to date for formatting, and after i converting date back to string thats to display at UI. i used different methods, but cannot find the correct way. My current locale is "RU".

推荐答案

  1. 您的格式化程序与输入格式不匹配.基本上你需要两个格式化程序:一个用于输入,一个用于输出.
  2. 格式dd,mm,yyyy"错误:mm 代表小时的分钟,而不是月份.您应该使用dd、MM、yyyy".

val launchDate = "2006-03-25T10:30:00+12:00"

val inputFormatter = DateTimeFormatter.ISO_DATE_TIME
val myDate = LocalDate.parse(launchDate, inputFormatter)

val outputFormatter = DateTimeFormatter.ofPattern("dd, MM, yyyy", Locale.US)
println(outputFormatter.format(myDate))

这篇关于Kotlin 日期时间解析异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆