48

我是 Scala 的新手,最近几天我已经学会了它。我对 Scala 从字符串转换的日期有疑问。

如何使用 Scala 将字符串转换为日期和时间?

它的工作方式与 Java 相同吗?

当我这样做时,我得到一个编译器错误,我无法将它转换为 Scala,因为我是 Scala 的新手。而且我知道将Java转换为Scala并不好......

请分享你的答案。

4

3 回答 3

58

如果您使用的是 Java 的 util.Date ,那么就像在 java 中一样:

val format = new java.text.SimpleDateFormat("yyyy-MM-dd")
format.parse("2013-07-06")

格式化文档 - SimpleDateFormat

或者如果您使用的是 joda 的 DateTime,则调用 parse 方法:

DateTime.parse("07-06-2013")

文档 -日期时间

于 2013-06-08T06:50:03.023 回答
6

我的首选选项是使用 nscala-time:https ://github.com/nscala-time/nscala-time

如果使用 sbt,请将其添加到您的 build.sbt。

libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "1.8.0"

导入并解析您的日期。

import com.github.nscala_time.time.Imports._

DateTime.parse("2014-07-06")
于 2015-06-12T06:53:58.573 回答
4

对于 Scala 2.11.8 (Java 1.8.0_162)

import java.time._
import java.time.format.DateTimeFormatter

val datetime_format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS")
val date_int_format = DateTimeFormatter.ofPattern("yyyyMMdd")
val last_extract_value="2018-05-09 10:04:25.375"
last_extract_value: String = 2018-05-09 10:04:25.375
//String to Date objects 
val string_to_date = datetime_format.parse(last_extract_value)
java.time.temporal.TemporalAccessor = {},ISO resolved to 2018-05-08T21:01:15.402
//Date Back to string 
date_int_format.format(string_to_date)
res18: String = 20180508
于 2018-05-09T18:11:23.253 回答