簡體   English   中英

在Scala中轉換日期格式

[英]Convert date format in Scala

我正在嘗試將以下格式的日期格式轉換為:scala中的2011-09-30 00:00:00.0到20110930。 有人有什么想法嗎?

如果您要做的只是將日期格式從字符串更改為字符串,則可以執行以下操作:

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

使用這樣的東西:

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

您可能可以使用其他答案中提到的日期函數。 但是,如果您確定格式為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)

但是,此解決方案且僅當您可以保證輸入格式相同時才有效

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM