【发布时间】:2019-11-10 18:59:51
【问题描述】:
我有一个作为字符串的初始日期,我需要将其转换为具有特定格式的日期。我尝试在字符串中定义日期格式并对其进行解析,然后将其格式化为所需的格式。问题是我需要一个日期作为最终结果。 这是我使用的代码:
def parseDateToOriginal(date: String): String = {
val initialDateFormat = new SimpleDateFormat("EEE MMM dd hh:mm:ss zzz yyyy")
val finalDateFormat = new SimpleDateFormat("yyyy-mm-dd")
val result = finalDateFormat.format(initialDateFormat.parse(date))
result
}
所以我需要 Date 作为这个方法的返回类型。我试图解析结果字符串以获得正确的日期,但由于某种原因,结果默认返回原始日期格式。我该如何解决这个问题?
这是我尝试再次解析它的方式:
val parsedDate = new SimpleDateFormat("yyyy-mm-dd").parse(parseDateToOriginal(date))
结果是模式"EEE MMM dd hh:mm:ss zzz yyyy"
【问题讨论】:
-
你在问不可能的事。
Date不能有格式。另外我建议你不要使用SimpleDateFormat和Date。这些类设计不良且过时,尤其是前者,尤其是出了名的麻烦。而是使用来自java.time, the modern Java date and time API 的ZonedDateTime和DateTimeFormatter。并且使用zzz进行解析本质上是不安全的,因为时区缩写是不明确的(我认为经常是这样)。
标签: scala date parsing localdate