LocalDateTime, LocalTime,LocalDate 区别

LocalDate:不包含具体时间的日期 2022-04-15

LocalTime:不含日期的时间 16:11:45.864

LocalDateTime:包含了日期及时间 2022-04-15T16:11:18.292

scala>
import java.time.{LocalDateTime, LocalTime,LocalDate,Duration, Instant}scala> LocalDate.now()
val res3: java.time.LocalDate = 2022-04-15scala> LocalDateTime.now()
val res6: java.time.LocalDateTime = 2022-04-15T16:11:18.292scala> LocalTime.now()
val res9: java.time.LocalTime = 16:11:45.864scala> Instant.now()
val res11: java.time.Instant = 2022-04-15T08:11:53.730Z

LocalDateTime

scala> val  nowDateTime = LocalDateTime.now()
val nowDateTime: java.time.LocalDateTime = 2022-04-15T16:26:23.701

LocalDateTime.now().get

  • 得到年月日(本年、本月、本周)
scala> nowDateTime.getYear
val res64: Int = 2022scala> nowDateTime.getMonth()
val res67: java.time.Month = APRILscala> nowDateTime.getMonthValue()
val res69: Int = 4scala> nowDateTime.getDayOf
getDayOfMonth()   getDayOfWeek()    getDayOfYear()

LocalDateTime 转为LocalDate 和LocalTime

scala> nowDateTime.toLocalDate
val res81: java.time.LocalDate = 2022-04-15scala> nowDateTime.toLocalTime
val res83: java.time.LocalTime = 16:26:23.701scala> nowDateTime.toString
val res86: String = 2022-04-15T16:26:23.701

加减时间

scala> nowDateTime.plusYears(12)
val res186: java.time.LocalDateTime = 2034-04-15T16:26:23.701

truncateTo

scala> nowDateTime.truncatedTo(ChronoUnit.HOURS)
val res194: java.time.LocalDateTime = 2022-04-15T16:00scala> nowDateTime.truncatedTo(ChronoUnit.DAYS)
val res203: java.time.LocalDateTime = 2022-04-15T00:00scala> nowDateTime.truncatedTo(ChronoUnit.WEEKS)
java.time.temporal.UnsupportedTemporalTypeException: Unit is too large to be used for truncationat java.time.LocalTime.truncatedTo(LocalTime.java:955)at java.time.LocalDateTime.truncatedTo(LocalDateTime.java:1121)... 32 elidedscala> nowDateTime.truncatedTo(ChronoUnit.MINUTES)
val res211: java.time.LocalDateTime = 2022-04-15T16:26scala> nowDateTime.truncatedTo(ChronoUnit.SECONDS)
val res212: java.time.LocalDateTime = 2022-04-15T16:26:23

LocalDate

scala> val nowDate=LocalDate.now()
val nowDate: java.time.LocalDate = 2022-04-15

获取年、月、日、当月的第几天

scala> nowDate.getYear()
val res43: Int = 2022scala> nowDate.getMonth
val res45: java.time.Month = APRILscala> nowDate.getMonth
def getMonth(): java.time.Month
scala> nowDate.getMonthValue
val res49: Int = 4

获取本年、本月、本周的第几天

scala> nowDate.getDayOfMonth
val res52: Int = 15scala> nowDate.getDayOfYear
val res54: Int = 105scala> nowDate.getDayOfWeek
val res56: java.time.DayOfWeek = FRIDAY

LocalTime

val nowTime = LocalTime.now()

得到当前时间的时、分、秒、纳秒

scala> nowTime.getHour
val res26: Int = 16scala> nowTime.getMinute
val res29: Int = 17scala> nowTime.getSecond
val res31: Int = 3scala> nowTime.getNano
val res38: Int = 724000000

日期时间格式化java.time.format.DateTimeFormatter

scala> val dtf: DateTimeFormatter =DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
val dtf: java.time.format.DateTimeFormatter = Value(YearOfEra,4,19,EXCEEDS_PAD)'-'Value(MonthOfYear,2)'-'Value(DayOfMonth,2)' 'Value(HourOfDay,2)':'Value(MinuteOfHour,2)':'Value(SecondOfMinute,2)scala> nowDateTime.format(dtf)
val res99: String = 2022-04-15 16:26:23scala> dtf.format(nowDateTime)
val res100: String = 2022-04-15 16:26:23scala> val dtf: DateTimeFormatter =DateTimeFormatter.ofPattern("yyyyMMdd HH:mm:ss")
val dtf: java.time.format.DateTimeFormatter = Value(YearOfEra,4,19,EXCEEDS_PAD)Value(MonthOfYear,2)Value(DayOfMonth,2)' 'Value(HourOfDay,2)':'Value(MinuteOfHour,2)':'Value(SecondOfMinute,2)scala> dtf.format(nowDateTime)
val res101: String = 20220415 16:26:23scala> nowDateTime.format(dtf)
val res102: String = 20220415 16:26:23

计算时间差 java.time.Period

Periods getYears(),getMonths() 和 getDays() – 精确到年月日

scala> val birDate=LocalDate.of(2000,11,8)
val birDate: java.time.LocalDate = 2000-11-08
scala> Period.between(nowDate,birDate)
val res123: java.time.Period = P-21Y-5M-7Dscala> Period.between(nowDate,birDate).getDays
val res126: Int = -7scala> Period.between(nowDate,birDate).getYears
val res128: Int = -21

计算时间差是后面日期减去前面日期

java.time.Duration

scala> import java.time.Duration
import java.time.Durationscala> val birdate=LocalDateTime.of(2000,11,8,18,30)
val birdate: java.time.LocalDateTime = 2000-11-08T18:30scala> val duration=Duration.between(birdate,nowDateTime)
val duration: java.time.Duration = PT187869H56M23.701S

得到时间差


scala> duration.toDays
val res136: Long = 7827scala> duration.toHours
val res141: Long = 187869scala> duration.toMinutes
val res146: Long = 11272196scala> duration.toNanos
val res148: Long = 676331783701000000

java.time.temporal.ChronoUnit

scala> import java.time.temporal.ChronoUnit
import java.time.temporal.ChronoUnitscala> ChronoUnit.DAYS
val res156: java.time.temporal.ChronoUnit = Daysscala> ChronoUnit.DAYS.between(birDate,nowDateTime)
val res161: Long = 7828scala> ChronoUnit.DAYS.between(birDate,nowDate)
val res162: Long = 7828scala> ChronoUnit.YEARS.between(birDate,nowDate)
val res164: Long = 21

获取昨天日期

import java.text.SimpleDateFormat
import java.util.{Calendar, Date}
def getYesterday(): String = {val dateFormat: SimpleDateFormat = new SimpleDateFormat("yyyyMMdd")val cal: Calendar = Calendar.getInstance()cal.add(Calendar.DATE, -1)dateFormat.format(cal.getTime())}

字符串转时间LocalDateTime

LocalDateTime.of(2021, 10, 22, 10, 10, 10);

JDK8 日期时间相关 java.time.*相关推荐

  1. JDK8 日期 API 使用

    JDK8 日期 API 使用 早期日期类的问题 老版本 API 计算困难问题 线程安全问题 其它 Date-Time API 中基本类的使用 of 方法在日期 /时间类的应用 为 LocalDateT ...

  2. jdbc 日期时间相关的类型

    jdbc 日期时间相关的类型 1.sql.Date sql包中的日期类Date是util包中Date类的子类,实际上也是util.Date类的子集.它只处理年月日,而忽略小时和分秒,用以代表SQL的D ...

  3. 请使用日期时间相关的API,计算出一个人已经出生了多少天

    package com.learn.demo03.DateFormat;import java.text.ParseException; import java.text.SimpleDateForm ...

  4. cot函数 java_java8、jdk8日期与字符串转化

    java8.jdk8日期转化成字符串详解 java8.jdk8日期转化成字符串 新建日期工具类:DateUtils 新建方法:parseDate 实现方法parseDate public static ...

  5. T-SQL: 17 个与日期时间相关的自定义函数(UDF),周日作为周的最后一天,均不受 @@DateFirst、语言版本影响...

    CSDN 的 Blog 太滥了!无时不刻地在坏! 开始抢救性搬家 ... ... 到这里重建家园 /* T-SQL: 17 个与日期时间相关的自定义函数(UDF),周日作为周的最后一天,均不受 @@D ...

  6. java对象转json字符串日期格式_fastJSON字符串类型数据中的日期转换为Java bean的日期对象...

    fastJSON字符串类型数据中的日期转换为Java bean的日期对象 Person.java import java.io.Serializable; import java.util.Date; ...

  7. java 日期 解析_Java日期解析(Java DATE Parsing)

    Java日期解析(Java DATE Parsing) 我有一个java.util.Date的愚蠢问题. 我有这一行代码,但我不明白为什么这个日期是用这种格式无法解析的. public class T ...

  8. T-SQL: 17 个与日期时间相关的自定义函数(UDF),周日作为周的最后一天,均不受 @@DateFirst、语言版本影响!...

    原文:T-SQL: 17 个与日期时间相关的自定义函数(UDF),周日作为周的最后一天,均不受 @@DateFirst.语言版本影响! CSDN 的 Blog 太滥了!无时不刻地在坏! 开始抢救性搬家 ...

  9. mysql日期时间相关

    1 获取日期时间相关 获取当前日期时间 SELECTNOW(), # sql 执行时的时间SYSDATE(), # 方法运行时的时间CURDATE(),# 当前日期 同CURRENT_DATE ()C ...

最新文章

  1. 最小二乘GAN:比常规GAN更稳定,比WGAN收敛更迅速
  2. java编程那些事pdf下载_《Java编程那点事儿》读书笔记(六)
  3. 【转】Info.plist中常用的key简介
  4. 使用ExecutorService来停止线程服务
  5. 用c实现部分java数组功能,很烂,留个参考吧
  6. Python的交互式界面 编写 .
  7. Kinect v1在windows上的使用教程
  8. Flutter文本标签TextTagWidget,搜索记录流式布局显示文本标签
  9. python zipfile模块学习笔记(一)
  10. java hql多条件查询_JSP 开发之hibernate的hql查询多对多查询
  11. 数据挖掘、机器学习、深度学习、推荐系统、自然语言处理的区别与联系
  12. java class类
  13. python常见变量数据类型_【python基础】常见的变量、数据类型、运算符
  14. python能处理数据的优点_Python在数据处理方面的优缺点
  15. Linux (deepin)网络管理详解.
  16. 《系统工程理论与实践》Latex 模板使用教程
  17. mydisktest测试软件,MyDiskTest
  18. 【京东】会员激励体系,会员体系结构分析
  19. (神州优车)数据交换平台架构分享
  20. Vue-cli3.x中使用Axios发送跨域请求的配置方法

热门文章

  1. 2022最全Java后端面试真题、两万字1000+道堪称史上最强的面试题不接受任何反驳
  2. Android页面监听虚拟键盘弹出、收起
  3. 典型环节(或系统)的频率特性测量
  4. Caffe2自定义Operator
  5. NUC977 烧录裸机程序到DDR
  6. nginx gzip压缩
  7. v免签对接易支付插件(已测试)
  8. positivessl证书旗下的IP证书
  9. SpringBoot整合RabbitMQ消息队列
  10. speedoffice(Excel)怎么给文字加粗