Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.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 - Fatal编程技术网

如何在Scala中确定给定日期前一天的日期?

如何在Scala中确定给定日期前一天的日期?,scala,Scala,如何在Scala中实现以下Java段?也就是说,如何确定Scala中给定日期前一天的日期 Calendar cal = Calendar.getInstance(); cal.setTime(myDate); cal.add(Calendar.DAY_OF_YEAR,-1); Date oneDayBefore= cal.getTime(); 谢谢。首先,您必须知道,任何Java API都可以导入并在Scala中使用,因此转换非常简单。其次,对于Java和Scala(尤其是Scala)中的日期

如何在Scala中实现以下Java段?也就是说,如何确定Scala中给定日期前一天的日期

Calendar cal = Calendar.getInstance();
cal.setTime(myDate);
cal.add(Calendar.DAY_OF_YEAR,-1);
Date oneDayBefore= cal.getTime();

谢谢。

首先,您必须知道,任何Java API都可以导入并在Scala中使用,因此转换非常简单。其次,对于Java和Scala(尤其是Scala)中的日期/时间操作,我建议您采用该库。

首先,您必须知道,任何Java API都可以在Scala中导入和使用,因此转换非常简单。其次,对于Java和Scala(尤其是Scala)中的日期/时间操作,我建议您采用该库。

要获得更像Scala的感觉,您可以使用它作为包装,事实上的非JDK日期实用程序:

import java.util.Calendar
val cal = Calendar.getInstance()
//cal.setTime(myDate); 
cal.add(Calendar.DAY_OF_YEAR,-1);
val oneDayBefore = cal.getTime();
>>oneDayBefore: java.util.Date = Sun Dec 29 11:52:17 MSK 2013
import com.github.nscala_time.time.Imports._
import com.github.nscala_time.time.Imports.DateTime._

  //if myDate is DateTime
  val myJodaDate = yesterday
  println( myJodaDate - 1.day )
  //2013-12-28T12:35:22.248Z

  //if myDate is DateTime and only interested in the date(no-time) portion
  println( (myJodaDate - 1.day).toLocalDate )
  //2013-12-28

  //if myDate is java.util.Date and interested in returning java.util.Date too
  val myJavaDate = myJodaDate.toDate
  println( (new DateTime(myJavaDate) - 1.day).toDate )
  //Sat Dec 28 12:39:12 GMT 2013

要获得更具Scala风格的感觉,您可以使用事实上的非JDK日期实用程序作为包装:

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

  //if myDate is DateTime
  val myJodaDate = yesterday
  println( myJodaDate - 1.day )
  //2013-12-28T12:35:22.248Z

  //if myDate is DateTime and only interested in the date(no-time) portion
  println( (myJodaDate - 1.day).toLocalDate )
  //2013-12-28

  //if myDate is java.util.Date and interested in returning java.util.Date too
  val myJavaDate = myJodaDate.toDate
  println( (new DateTime(myJavaDate) - 1.day).toDate )
  //Sat Dec 28 12:39:12 GMT 2013

var-cal
替换
Calendar-cal
,用
var-oneDayBefore
替换
Calendar-cal
,用
var-cal
替换
Calendar-cal
Date-oneDayBefore
替换
var-oneDayBefore
将获得有效的scala代码。在scala中,您可以使用使Joda Time更易于使用。在Scala中,您可以使用它使Joda Time更易于使用。