scala 时间,时间格式转换

  • 1.scala 时间格式转换(String、Long、Date)
    • 1.1时间字符类型转Date类型
    • 1.2Long类型转字符类型
    • 1.3时间字符类型转Long类型
  • 2.scala 时间和时间戳互转
    • 2.1时间转换为时间戳
    • 2.2时间戳转化为时间
    • 2.3将时间戳转化成日期
  • 3.获取今天日期,昨天日期,本周时间,本月时间,时间戳转换日期时间比较计算时间差
    • 3.1获取今天日期
    • 3.2获取昨天的日期
    • 3.3获取本周开始日期
    • 3.4获取本周末的时间
    • 3.5本月的第一天
    • 3.6本月的最后一天
  • 4.计算时间差
  • 5.Scala日期处理
    • 5.1计算时间间隔
    • 5.2产生日期序列
import java.time.LocalDateobject fileTest {def main(args: Array[String]) {var nowdate = LocalDate.now()println("LocalDate.now()-->现在的时间是"+LocalDate.now())println("nowdate.plusDays-->明天是-->"+nowdate.plusDays(1))println("nowdate.minusDays-->昨天是-->"+nowdate.minusDays(1))println("nowdate.plusMonths-->今天加一个月-->"+nowdate.plusMonths(1))println("nowdate.minusMonths-->今天减一个月-->"+nowdate.minusMonths(1))println("nowdate.getDayOfYear-->今天是今年的第"+nowdate.getDayOfYear+"天")println("nowdate.getDayOfMonth->这个月有"+nowdate.getDayOfMonth+"天")println("nowdate.getDayOfWeek-->今天星期"+nowdate.getDayOfWeek)println("nowdate.getMonth-->这个月是"+nowdate.getMonth)}
}

1.scala 时间格式转换(String、Long、Date)

1.1时间字符类型转Date类型

import java.text.SimpleDateFormat
val time = "2017-12-18 00:01:56"
val newtime :Date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(time)
println(newtime)

1.2Long类型转字符类型

val time:Long= 1513839667//秒
val newtime :String = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(time*1000)
println(newtime)

1.3时间字符类型转Long类型

val time = "2017-12-18 00:01:56"
val newtime :Long= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(time).getTime
println(newtime)

2.scala 时间和时间戳互转

2.1时间转换为时间戳

import java.text.SimpleDateFormat
object test {def main(args: Array[String]): Unit = {val tm = "2017-08-01 16:44:32"val a = tranTimeToLong(tm)println(a) }def tranTimeToLong(tm:String) :Long={val fm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")val dt = fm.parse(tm)val aa = fm.format(dt)val tim: Long = dt.getTime()tim}
}

2.2时间戳转化为时间

import java.text.SimpleDateFormat
import java.util.Dateobject test {def main(args: Array[String]): Unit = {val tm = "1502036122000"val a = tranTimeToString(tm)println(a)}def tranTimeToString(tm:String) :String={val fm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")val tim = fm.format(new Date(tm.toLong))tim}
}
  def timeFormat(time:String):String={var sdf:SimpleDateFormat = new SimpleDateFormat("HH:mm:ss")var date:String = sdf.format(new Date((time.toLong*1000l)))date}

2.3将时间戳转化成日期

时间戳是秒数,需要乘以1000l转化成毫秒

  def DateFormat(time:String):String={var sdf:SimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd")var date:String = sdf.format(new Date((time.toLong*1000l)))date}

3.获取今天日期,昨天日期,本周时间,本月时间,时间戳转换日期时间比较计算时间差

3.1获取今天日期

  def getNowDate():String={var now:Date = new Date()var  dateFormat:SimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd")var hehe = dateFormat.format( now )hehe}

3.2获取昨天的日期

  def getYesterday():String={var  dateFormat:SimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd")var cal:Calendar=Calendar.getInstance()cal.add(Calendar.DATE,-1)var yesterday=dateFormat.format(cal.getTime())yesterday

3.3获取本周开始日期

  def getNowWeekStart():String={var period:String=""var cal:Calendar =Calendar.getInstance();var df:SimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY)//获取本周一的日期period=df.format(cal.getTime())period}

3.4获取本周末的时间

  def getNowWeekEnd():String={var period:String=""var cal:Calendar =Calendar.getInstance();var df:SimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);//这种输出的是上个星期周日的日期,因为老外把周日当成第一天cal.add(Calendar.WEEK_OF_YEAR, 1)// 增加一个星期,才是我们中国人的本周日的日期period=df.format(cal.getTime())period}

3.5本月的第一天

  def getNowMonthStart():String={var period:String=""var cal:Calendar =Calendar.getInstance();var df:SimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");cal.set(Calendar.DATE, 1)period=df.format(cal.getTime())//本月第一天period}

3.6本月的最后一天

  def getNowMonthEnd():String={var period:String=""var cal:Calendar =Calendar.getInstance();var df:SimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");cal.set(Calendar.DATE, 1)cal.roll(Calendar.DATE,-1)period=df.format(cal.getTime())//本月最后一天period}

4.计算时间差

    //核心工作时间,迟到早退等的的处理def getCoreTime(start_time:String,end_Time:String)={var df:SimpleDateFormat=new SimpleDateFormat("HH:mm:ss")var begin:Date=df.parse(start_time)var end:Date = df.parse(end_Time)var between:Long=(end.getTime()-begin.getTime())/1000//转化成秒var hour:Float=between.toFloat/3600var decf:DecimalFormat=new DecimalFormat("#.00")decf.format(hour)//格式化}

5.Scala日期处理

5.1计算时间间隔

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)  // 时间间隔,单位:分钟

5.2产生日期序列

import java.util.Calendarimport java.util.Dateimport java.text.SimpleDateFormatimport 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)).toIntval 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 = 20160101val stringDateEnd: String = "20160209"
stringDateEnd: String = 20160209val dateFormat: SimpleDateFormat = new SimpleDateFormat("yyyyMMdd")
dateFormat: java.text.SimpleDateFormat = java.text.SimpleDateFormat@ef87e460val dateBegin: Date = dateFormat.parse(stringDateBegin)
dateBegin: java.util.Date = Fri Jan 01 00:00:00 UTC 2016val dateEnd: Date = dateFormat.parse(stringDateEnd)
dateEnd: java.util.Date = Tue Feb 09 00:00:00 UTC 2016val 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 = 3369600000val diffDay = (diff / (1000 * 60 * 60 * 24)).toInt
diffDay: Int = 39val 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 时间,时间格式转换相关推荐

  1. POJ3751 时间日期格式转换【日期计算】

    时间日期格式转换 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8306   Accepted: 3829 Descript ...

  2. python日期格式转换_python中有关时间日期格式转换问题

    每次遇到pandas的dataframe某列日期格式问题总会哉坑,下面记录一下常用时间日期函数.... 1.字符串转化为日期 str->date import datetime date_str ...

  3. NUC1421 时间日期格式转换【日期计算】

    时间日期格式转换 时间限制: 1000ms 内存限制: 65535KB 通过次数: 1总提交次数: 1 问题描述 世界各地有多种格式来表示日期和时间.对于日期的常用格式,在中国常采用格式的是" ...

  4. 字符串与时间的格式转换

    字符串与时间的格式转换 这里可以使用hutool的DateUtil进行转换,支持多种格式的时间进行转换 import cn.hutool.core.date.DateTime; import cn.h ...

  5. stata:时间变量格式转换

    stata:时间变量格式转换 时间序列是经济金融类研究最常用的数据类型,时间变量的转换和设定一般是初学者最为头大的问题,本文在这里详尽的展示有关时间变量处理.转换以及格式设定的相关问题,话不多说直奔主 ...

  6. 时间日期格式转换_JAVA

    Description 对于日期的常用格式,在中国常采用格式的是"年年年年/月月/日日"或写为英语缩略表示的"yyyy/mm/dd",此次编程竞赛的启动日期&q ...

  7. Java时间日期格式转换

    突然忘记了时间格式怎么转换,特此做个记录 Java时间格式转换大全import java.text.*; import java.util.Calendar; public class VeDate ...

  8. java转日期_Java时间日期格式转换

    import java.util.*;import java.text.*;importjava.util.Calendar;public classVeDate {/*** 获取现在时间 * *@r ...

  9. 原生html5时间组件,JFinal遇到了原生Html5时间组件格式转换问题怎么处理?

    今天JBolt种子用户群里有人提问,JFinal针对原生Html5的日期时间选择组件的格式转换支持有问题,报错. 于是我在JBolt的Demo中加入了这些去测试一下,这里使用的都是原生Html组件. ...

  10. java时间格式转换_Java时间日期格式转换

    突然忘记了时间格式怎么转换,特此做个记录 Java时间格式转换大全 import java.text.*; import java.util.Calendar; public class VeDate ...

最新文章

  1. Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a cl
  2. 【Harvest源码分析】NuttallWindow
  3. 春运渡劫?Python帮你12306抢回家的火车票
  4. 500元辛苦费,求一C#算法,自由定义表达式
  5. 说话不能太绝对,要留有余地
  6. 永乐XIANDAI 08
  7. Java模块化方法–模块,模块,模块
  8. 清理SYSAUX表空间
  9. [react] 和Component两者的区别是什么
  10. c++网吧计费系统_云游戏火了,中国14万家网吧走向何处?
  11. 基于JAVA+Spring+MYSQL的物流运输管理系统
  12. 【VS2010学习笔记】【类型转换】整形转换为CString类型
  13. linux 网卡爽ip,linux服务器双网卡爽IP实现双线
  14. 松原计算机等级考试试题,2019年上半年吉林省松原市计算机等级考试注意事项...
  15. java给txt文件写入内容_java代码 如何向TXT文件写入内容?
  16. ORACLE统计报表
  17. 如何自己制作装机工具装系统,硬装系统
  18. 易语言数据库读取相关数据
  19. linux-c之函数(函数指针、函数传参、命令行参数)
  20. freemarker 遍历 map

热门文章

  1. 股票量化分析工具QTYX使用攻略——快速选出强势股(更新2.6.0)
  2. su user oracle does not exist,【案例】Linux文件系统无法mount 由superblock损坏导致
  3. 莫言诺贝尔获奖词——看莫言对中国的描述方式
  4. mysql新建分区设置阈值(less than)引发的问题
  5. RAID 0/ 1/ 5/ 10./ JBOD是什么模式?什么意思?
  6. MATLAB画阿基米德螺旋线
  7. Android下USB Accessory的实现分析 (一)--- AOA背景介绍
  8. CCF CSP 202209-4 吉祥物投票【并查集+Set维护段】
  9. EXCEL实现聚光灯效果
  10. html 如何制作翻牌效果,CSS3实现翻牌旋转效果