Scala日期处理

摘要:
计算间隔vald=newjava。文本SimpleDateFormat(“yyyyMMddHH:mm:ss”)。format(newjava.util.Date())valdateFormat=newjava。文本SimpleDateFormat(“yyyyMMddHH:mm:ss”)//系统时间值d1=newjava。util。Date()valnowDate:字符串=

计算时间间隔 

val d = new java.text.SimpleDateFormat("yyyyMMdd HH:mm:ss").format(new java.util.Date())

    val dateFormat = new java.text.SimpleDateFormat("yyyyMMdd HH:mm:ss")

    // 系统时间
    val d1 = new java.util.Date()
    val nowDate: String = dateFormat.format(d1)

    // 输入指定时间
    val dd: Date = dateFormat.parse("20161229 14:20:50")

    // 时间差
    val d3 = new java.util.Date()
    val d4 = new java.util.Date()
    val diff = d4.getTime - d3.getTime  // 返回自此Date对象表示的1970年1月1日,00:00:00 GMT以来的毫秒数。
    val diffMinutes = diff / (1000 * 60)  // 时间间隔,单位:分钟

产生日期序列

 import java.util.Calendar
    import java.util.Date
    import java.text.SimpleDateFormat
    import scala.collection.mutable.ListBuffer

    // 输入开始日期和结束日期
    val stringDateBegin: String = "20160101"
    val stringDateEnd: String = "20160209"

    val dateFormat: SimpleDateFormat = new SimpleDateFormat("yyyyMMdd")
    val dateBegin: Date = dateFormat.parse(stringDateBegin)
    val dateEnd: Date = dateFormat.parse(stringDateEnd)

    val calendarBegin: Calendar = Calendar.getInstance()
    val calendarEnd: Calendar = Calendar.getInstance()

    calendarBegin.setTime(dateBegin)
    calendarEnd.setTime(dateEnd)

    // 计算日期间隔天数
    val diff = calendarEnd.getTimeInMillis() - calendarBegin.getTimeInMillis()
    val diffDay = (diff / (1000 * 60 * 60 * 24)).toInt
    val calendarList = new ListBuffer[String]()
    for (d <- 0 to diffDay) {
      // 日期转化成"yyyyMMdd"
      calendarList.append(dateFormat.format(calendarBegin.getTime()))
      calendarBegin.add(Calendar.DAY_OF_MONTH, 1)
    }

    calendarList.mkString(",")

 执行结果

// 输入开始日期和结束日期
val stringDateBegin: String = "20160101"
stringDateBegin: String = 20160101

val stringDateEnd: String = "20160209"
stringDateEnd: String = 20160209

val dateFormat: SimpleDateFormat = new SimpleDateFormat("yyyyMMdd")
dateFormat: java.text.SimpleDateFormat = java.text.SimpleDateFormat@ef87e460

val dateBegin: Date = dateFormat.parse(stringDateBegin)
dateBegin: java.util.Date = Fri Jan 01 00:00:00 UTC 2016

val dateEnd: Date = dateFormat.parse(stringDateEnd)
dateEnd: java.util.Date = Tue Feb 09 00:00:00 UTC 2016

val calendarBegin: Calendar = Calendar.getInstance()
calendarBegin: java.util.Calendar = java.util.GregorianCalendar[time=1480484154627,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Etc/Universal",offse
t=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2016,MONTH=10,WEEK_OF_YEAR=49,WEEK_OF_MONTH=5,DAY_OF_MONTH=30,DAY_OF_YEAR=335,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=5,AM_PM=0,HOUR=5,HOUR_OF_DAY=5,MINUTE=35,SECOND=54,MILLISECOND=627,ZONE_OFFSET=0,DST_OFFSET=0]

val calendarEnd: Calendar = Calendar.getInstance()
calendarEnd: java.util.Calendar = java.util.GregorianCalendar[time=1480484154845,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Etc/Universal",offset=
0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2016,MONTH=10,WEEK_OF_YEAR=49,WEEK_OF_MONTH=5,DAY_OF_MONTH=30,DAY_OF_YEAR=335,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=5,AM_PM=0,HOUR=5,HOUR_OF_DAY=5,MINUTE=35,SECOND=54,MILLISECOND=845,ZONE_OFFSET=0,DST_OFFSET=0]

calendarBegin.setTime(dateBegin)
calendarEnd.setTime(dateEnd)

// 计算日期间隔天数
val diff = calendarEnd.getTimeInMillis() - calendarBegin.getTimeInMillis()
diff: Long = 3369600000

val diffDay = (diff / (1000 * 60 * 60 * 24)).toInt
diffDay: Int = 39

val calendarList = new ListBuffer[String]()
calendarList: scala.collection.mutable.ListBuffer[String] = ListBuffer()

for (d <- 0 to diffDay) {
    // 日期转化成"yyyyMMdd"
    calendarList.append(dateFormat.format(calendarBegin.getTime()))
    calendarBegin.add(Calendar.DAY_OF_MONTH, 1)
          }

calendarList.mkString(",")
res12: String = 20160101,20160102,20160103,20160104,20160105,20160106,20160107,20160108,20160109,20160110,20160111,20160112,20160113,20160114,20160115,20160116,20160117,20160118,20160119,2016
0120,20160121,20160122,20160123,20160124,20160125,20160126,20160127,20160128,20160129,20160130,20160131,20160201,20160202,20160203,20160204,20160205,20160206,20160207,20160208,20160209

免责声明:文章转载自《Scala日期处理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇shell中各种括号的作用Hazelcast介绍下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

WebApi使用Token(OAUTH 2.0方式)

1.在项目中添加引用 Microsoft.AspNet.WebApi.Owin Microsoft.Owin.Host.SystemWeb Microsoft.Owin.Security.OAuth Microsoft.Owin.Security.Cookies Microsoft.AspNet.Identity.Owin Microsoft.Owin.C...

go语言——实现函数名到函数处理的映射关系(反射的应用)

模拟这样一个场景:当我们知道我们要执行操作的名字,让其作为参数传入,如何通过这个名字取执行相应的函数处理呢? 解决方法:(这里设定一个结构A,其变量a,实现相应函数为fun1、fun2)   ①:首先在编码过程中,我们可以将相应的处理函数进行“同一结构”实现,让其函数名和相应处理函数用map结构形成映射;   ②:通过创建该结构体的变量,通过反射(vf :...

在springboot启动时给钉钉群发通知

1.因为springboot启动后会加载所用的配置文件,所以我们可以在main方法下写DingTalk的bean来注入DingTalk配置。 @ServletComponentScan public classApplication { //DingTalk Bean变量 private static String DING_TALK_U...

Java 之 调用.Net的 WebService 整理

  最近做一个 java 调用 .net 服务的项目,其中 .net做了一个WebService,需要java来调用。   最开始.net的Service代码如下: using System; using System.Web; using System.Web.Services; using System.Web.Services.Protocol...

Paypal开发中遇到请求被中止: 未能创建 SSL/TLS 安全通道及解决方案

最近在基于ASP.NET上开发了Paypal支付平台,在ASP.NET开发的过程中没有遇到这个问题,但是引用到MVC开发模式中的时候就出现了“未能创建 SSL/TLS 安全通道及解决方案”的问题; 1 /// <summary> 2 ///发送请求 3 /// </summary>...

C# PropertyGrid控件应用心得

最近项目中做一模块时偶发奇想,希望使用propertygrid的控件实现类似visual studio的属性样式,于是拿来一用,发现还真不是自己想象的那么简单,如果要实现一个比较好的展示,还真的需要不少技巧,通过自己的实践和网络的力量,“逢山开道,遇水搭桥”,总算是摸出一些门道,不敢私藏,拿出来与大家分享,呵呵。 先来转一个基础的,源自msdn http:...