在Scala中转换日期格式

时间:2018-01-23 22:02:53

标签: scala date

我正在尝试转换日期格式,如下所示: 2011-09-30 00:00:00.0 到20110930 在斯卡拉。 有没有人有任何想法?

3 个答案:

答案 0 :(得分:1)

您可以使用其他答案中提到的日期函数。但是,如果您确定格式为2011-09-30 00:00:00.0

简单的Map操作应该没问题

val x = List("2011-09-30 00:00:00.0")
val output = x map (x => x.dropRight(11).replace("-",""))
> output: List[String] = List(20110930)

但是此解决方案有效 If和Only If 您可以保证输入的格式相同。

答案 1 :(得分:0)

如果您只想将日期格式从字符串更改为字符串,则可以执行以下操作:

def toSimpleDate(dateString: String): Option[String] = {
  val parser = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S")
  val formatter = DateTimeFormatter.ofPattern("yyyyMMdd")

  Try {
    LocalDateTime.parse(dateString, parser)
  }.toOption
    .map(_.format(formatter))
}

toSimpleDate("2011-09-30 00:00:00.0") // Some("20119030")
toSimpleDate("Meh") // None

答案 2 :(得分:0)

使用类似的东西:

import java.text.SimpleDateFormat

val inputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S")
val outputFormat = new SimpleDateFormat("ddMMyyyy")

val date = "2015-01-31 12:34:00.0"
val formattedDate = outputFormat.format(inputFormat.parse(date))

println(formattedDate) //20150131