Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 日期转换_Scala_Date - Fatal编程技术网

Scala 日期转换

Scala 日期转换,scala,date,Scala,Date,我有一个日期变量 var date: Date = new Date() 然后我将此日期转换为字符串: var dateStr = date.toString() 现在我需要将这个字符串转换回日期。 我试过两种方法: 1: 和2: stringToDate: Date = new SimpleDateFormat("dd.MM.yyyy").parse(dateStr); 但在这两种情况下,我都犯了错误: java.lang.ClassCastException: java.lang.St

我有一个日期变量

var date: Date = new Date()
然后我将此日期转换为字符串:

var dateStr = date.toString()
现在我需要将这个字符串转换回日期。 我试过两种方法:

1:

和2:

stringToDate: Date = new SimpleDateFormat("dd.MM.yyyy").parse(dateStr);
但在这两种情况下,我都犯了错误:

java.lang.ClassCastException:
java.lang.String cannot be cast to java.util.Date

您的第一次尝试应该会给您一个ClassCastException,因为您无法将.aString转换为日期。第二次尝试似乎没有使用正确的打印格式。java.utility.Date的toString方法以javadoc中指定的格式返回字符串。

我看到您的代码中有几个问题,但这很好:

scala> val format = new java.text.SimpleDateFormat("dd-MM-yyyy")
format: java.text.SimpleDateFormat = java.text.SimpleDateFormat@9586200

scala> format.format(new java.util.Date())
res4: java.lang.String = 21-03-2011

scala> format.parse("21-03-2011")
res5: java.util.Date = Mon Mar 21 00:00:00 CET 2011
使用以下方法对我很有效:

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

val ysterday= (DateTime.now- 1.days).toString(StaticDateTimeFormat.forPattern("yyyyMMdd"))

启动
Scala 2.11
,瞄准
Java 8
,可以使用
Java.time
Date-time API:

import java.time.LocalDate
import java.time.format.DateTimeFormatter

val dtf = DateTimeFormatter.ofPattern("dd-MM-yyyy")

LocalDate.now().format(dtf)        // "06-07-2018"
LocalDate.parse("06-07-2018", dtf) // java.time.LocalDate = 2018-07-06
请注意:

  • 这是标准库的一部分(不需要第三方依赖项)
  • 这是旧的
    java.util.Date
    /
    SimpleDataFormat
    api
  • 这也是广泛使用的
    joda time
    库:

    注意,从JavaSE8开始,用户被要求迁移到Java.time(JSR-310)——JDK的核心部分,它取代了这个项目

  • 通过关联,它是对joda time的包装


我需要转换以下格式的日期:“2011年8月22日”到日期!!关于第二种方法,我需要将以下字符串“22-AUG-11”转换为日期。怎样!!格式字符串
dd-MMM-yy
怎么样。检查提供了在日期模式中可以使用的详细信息。这是超级的。如何将以下格式的日期“2011年8月22日”转换为date@Echo“dd-MMM-yy”。。。请注意DateFormat不是线程安全的。它可以为您节省一天的调试时间。看看下面答案中的joda包装。
import java.time.LocalDate
import java.time.format.DateTimeFormatter

val dtf = DateTimeFormatter.ofPattern("dd-MM-yyyy")

LocalDate.now().format(dtf)        // "06-07-2018"
LocalDate.parse("06-07-2018", dtf) // java.time.LocalDate = 2018-07-06