我正在尝试将这种格式的日期转换成Scala中的20110930:
2011-09-30 00:00:00.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
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
您可能可以使用其他答案中提到的日期函数。不过,如果您确定格式为 2011-09-30 00:00:00.0
,那么一个简单的映射操作应该就足够了。
val x = List("2011-09-30 00:00:00.0")
val output = x map (x => x.dropRight(11).replace("-",""))
> output: List[String] = List(20110930)
java.text.DateFormat
。 - BrianSimpleDateFormat
看起来更好。您将创建一个SimpleDateFormat
类,传递表示日期格式的模式,解析它,然后可以将每个日期转换为毫秒以查找最小值和最大值。 - Brianformat()
方法转换成统一的String
格式以便比较它们并找到最小值或最大值。在解析输入字符串后,你可以直接对Date
元素执行这些操作。 - jwvh