当前位置: 首页 > 工具软件 > utils4s > 使用案例 >

utils4s工具类常用入门工具操作

耿和韵
2023-12-01

时间类工具(基于joda,可支持时区)

核心对象:

DateTimeFormat    日期格式化与解析(与joda原框架里DateTimeFormatter等价)

DateTime    日期时间(支持时区转换)#2020-03-01T00:02:02.000+08:00

LocalDateTime    本地日期时间(没有时区) #2020-03-01T00:02:02.000

LocalDate    本地日期(没有小时,没有时区)#2020-03-01

LocalTime    本地时间(没有日期,没有时区)#00:02:02.000

import com.github.nscala_time.time.Imports._
import org.joda.time.PeriodType

//时间类工具常用操作Demo
object DateUtilsDemo {
  def main(args: Array[String]): Unit = {
    //基于时间字符串构建时间对象DateTime,2参数不传默认读取格式为"yyyy-MM-dd"
    val date = DateTime.parse("2020-03-01 00:02:02:002",DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss:SSS"))
    println(date)
    //基于毫秒值构建时间对象DateTime
    val date1 = new DateTime( date.getMillis )
    println(date1)
    //时间对象转化成指定格式字符串
    println(date1.toString(DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss:SSS")))
    //日期(时间)的加减
    var date2 = date + 2.days + 2.hours + 2.minutes + 2.seconds + 2.millis
    date2 = date - 1.days - 1.hours - 1.minutes - 1.seconds - 1.millis
    println(date2)
    //两日期(时间)间的比较
    val result = (date + 1.seconds) > date
    println(result)
    //两日期(时间)间求差值
    //new Period( 时间1,时间2,需要的时间单位),结果为(时间2-时间1)的时间换算为所需时间单位差值
    println(new Period(date , (date + 1.days + 1.hours) , PeriodType.hours()).getHours )
    //如不需将时间换算为指定单位,则不传入3参数new Period(date , (date + 1.days + 1.hours))
    //不指定换算单位注意取出结果时要挨个单位取出对应的值
    val subtime = new Period(date , (date + 1.days + 1.hours))
    println(s"差值为${subtime.getDays}天,${subtime.getHours}小时,${subtime.getMinutes}分钟")
    //一些常用日期(时间)函数
    println(date1.getDayOfYear  )               //这个年的第几天
    println(date1.getDayOfMonth  )              //这个月的第几天
    println(date1.getDayOfWeek  )               //这个星期的第几天(星期几)
    println(date1.withDayOfWeek(1))             //这一周的星期一的日期
    println(date1.dayOfMonth().getMaximumValue) //这个月有多少天
    println(date1.dayOfYear().getMaximumValue)  //今年有多少天
    println(date1.getHourOfDay)                 //当天第几个小时
    println(date.getMinuteOfDay)                //当天第几分钟
  }
}

 

 类似资料: