操作包括

java.util.Date().getTime()返回13位时间戳

System.currentTimeMillis 计算毫秒差

SimpleDateFormat 解析和格式化日期

LocalDate

LocalTime

LocalDateTime

Duration

Period

计算日间隔 toEpochDay

日期相互加减

日期时间和日期相互转换

时间类型和时间戳互相转化

java.util.Date().getTime()

返回13位时间戳

long a = new java.util.Date().getTime();

System.out.println(a); // 1602243261784

System.currentTimeMillis

常用来计时, 单位是毫秒

// 使用 System.currentTimeMillis

// 主要用来计算时间差

public static void getDiffTime() {

try {

long start = System.currentTimeMillis();

Thread.sleep(1000);

long end = System.currentTimeMillis();

System.out.println(end - start);

} catch (Exception e) {

e.printStackTrace();

}

}

SimpleDateFormat

常用来解析和格式化日期

// SimpleDateFormat 常用来输出标准格式日期

// yyyy-MM-dd HH:mm:ss

public static void getFormatDate() {

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");

System.out.println(simpleDateFormat.format(new Date()));

}

public static void getParseDate() {

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");

try {

Date date = simpleDateFormat.parse("2020-02-02");

System.out.println(date);

} catch (Exception e) {

e.printStackTrace();

}

}

LocalDate

获得日期类型的时间, 并且获得年月日

// LocalDate 获得当前日期, 并且获得年. 月, 日

public static void getNowDate() {

LocalDate date = LocalDate.now();

System.out.println(date);

System.out.println(date.getDayOfMonth());

System.out.println(date.getMonthValue());

System.out.println(date.getYear());

// 可以format

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");

String formatDate = date.format(formatter);

System.out.println(formatDate);

}

LocalTime

获得当前的日期时间, 并且获得时,分,秒

// LocalTime, 获得当前的日期时间, 并且获得时,分,秒

public static void getNowTime() {

LocalTime time = LocalTime.now(); // 20:13:56.241

System.out.println(time);

System.out.println(time.getHour());

System.out.println(time.getMinute());

System.out.println(time.getSecond());

// 可以format

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");

String formatTime = time.format(formatter);

System.out.println(formatTime);

}

LocalDateTime

获得当前的日期时间, 并且获得年月日时分秒

// LocalDateTime, 获得当前的日期时间, 并且获得年月日时分秒

public static void getNowDateTime() {

LocalDateTime datetime = LocalDateTime.now();

System.out.println(datetime);

System.out.println(datetime.getYear());

System.out.println(datetime.getDayOfMonth());

System.out.println(datetime.getMonthValue());

System.out.println(datetime.getHour());

System.out.println(datetime.getMinute());

System.out.println(datetime.getSecond());

// format

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

String formatDatetime = datetime.format(dateTimeFormatter);

System.out.println(formatDatetime); // 2020-07-17 09:22:54

}

获得指定时间类型的数据

可以使用parse解析输入的字符串

// 指定日期时间

public static void getTimeDefine() {

String time1 = "2020-02-02";

String time2 = "2020-02-02 15:03";

String time3 = "16:20:20";

LocalDate time1Parse = LocalDate.parse(time1);

System.out.println(time1Parse);

System.out.println(time1Parse.getDayOfMonth());

LocalDateTime time2Parse = LocalDateTime.parse(time2, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));

System.out.println(time2Parse);

System.out.println(time2Parse.getHour());

System.out.println(time2Parse.getSecond()); // 默认是0

// 解析之后再格式化输出

System.out.println(time2Parse.format(DateTimeFormatter.ofPattern("yyyy:MM:dd HH:mm:ss")));

LocalTime time3Parse = LocalTime.parse(time3);

System.out.println(time3Parse);

System.out.println(time3Parse.getHour());

System.out.println(time3Parse.format(DateTimeFormatter.ofPattern("HH:mm")));

}

或者使用of方法

public static void getTimeDefine2() {

LocalDateTime time1 = LocalDateTime.of(2020, 2, 3, 13, 2, 33);

System.out.println(time1);

System.out.println(time1.getYear());

System.out.println(time1.getSecond());

LocalDate time2 = LocalDate.of(2020, 2, 3);

System.out.println(time2);

System.out.println(time2.getDayOfMonth());

System.out.println(time2.getYear());

}

Duration

时间区间, 使用秒和纳秒衡量, 只能用DateTime

// 计算日期差

public static void getDiffDate() {

// Duration用秒和纳秒衡量时间, 所以只能用LocalDateTime

LocalDateTime date1 = LocalDateTime.parse("2020-02-02 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

LocalDateTime date2 = LocalDateTime.of(2020, 4, 2, 0, 0, 0);

Duration duration = Duration.between(date1, date2);

System.out.println(duration.toString()); // PT-744H

System.out.println(duration.toDays()); // 后 - 前

System.out.println(duration.toHours());

System.out.println(duration.toMillis());

}

Period

时间区间, 衡量年月日和几天之间的时间值

// 计算日期差Period

public static void getDiddDate2() {

// Period

// 计算间隔多少年月天, 以大单位先开始排, toTotalMonths可以获得总共间隔多少月

LocalDate date1 = LocalDate.of(2018, 2, 2);

LocalDate date2 = LocalDate.of(2020, 1, 10);

Period period = Period.between(date1, date2);

System.out.println(period.getYears());

System.out.println(period.getDays());

System.out.println(period.getMonths());

System.out.println(period.toTotalMonths());

System.out.printf("区间间隔%d年%d月%d天\n", period.getYears(), period.getMonths(), period.getDays());

}

toEpochDay 计算相差多少日

// 计算日期相差多少天

public static void getDiffDay() {

LocalDate date1 = LocalDate.of(2020, 2, 3);

LocalDate date2 = LocalDate.of(2020, 1, 19);

long date1EpochDay = date1.toEpochDay(); // 返回的是距离1970-01-01的天数

System.out.println(date1EpochDay);

long diffDays = date1.toEpochDay() - date2.toEpochDay();

System.out.println(diffDays);

}

日期相加减

// 日期相加减

public static void plusMinDay() {

LocalDate date1 = LocalDate.of(2020, 2, 3);

LocalDate date2 = date1.plusDays(3);

System.out.println(date2);

LocalDate date3 = date1.plusYears(2);

System.out.println(date3);

LocalDate date4 = date1.minusDays(10);

System.out.println(date4);

LocalDate date5 = date1.minusDays(-10);

System.out.println(date5);

}

时间, 日期, 日期时间之间的互相转化

// time, date, datetime之间互相转化

public static void dateToTimeStamp() {

// date => datetime asTime

LocalDate date1 = LocalDate.of(2020, 1, 2);

LocalDateTime time1 = date1.atTime(LocalTime.parse("06:30:20"));

LocalDateTime time2 = date1.atTime(LocalTime.of(6,30,30));

System.out.println(time1.toString());

System.out.println(time2.toString());

// time => datetime

LocalTime time6 = LocalTime.of(13, 13, 13);

LocalDateTime date3 = time6.atDate(LocalDate.parse("2020-02-02"));

System.out.println(date3);

// datetime => date / time

LocalDateTime time3 = LocalDateTime.of(2020, 2, 2, 13, 1, 1);

LocalDate date2 = time3.toLocalDate();

System.out.println(date2.toString());

LocalTime time4 = time3.toLocalTime();

System.out.println(time4);

}

时间类型和时间戳互相转化

// 转化为时间戳

public static void dateTimeToTimestamp() {

// datetime转时间戳

LocalDateTime time1 = LocalDateTime.of(2020,2,2,2,2,2);

long timestrap = time1.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();

System.out.println(timestrap); // 1580580122000 13位时间戳

// 时间戳转datetime

Instant instant = Instant.ofEpochMilli(1580580122000L);

LocalDateTime time2 = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());

System.out.println(time2.toString());

}

java difftime_Java8 日期时间操作相关推荐

  1. java List最大_在java中获取List集合中最大的日期时间操作

    取list集合中最大的日期, 可以用date max = collections.max(datelist);, 传入一个日期集合, 就可以获取, 工作中有这个需求, 就查找到这个, 代码如下 } e ...

  2. java处理日期时间 相加减

    参考:http://alexfc.iteye.com/blog/363185 JAVA处理日期时间常用方法: 1.java.util.Calendar  Calendar 类是一个抽象类,它为特定瞬间 ...

  3. java 关于日期的操作

    java处理日期时间 相加减 JAVA处理日期时间常用方法: 1.java.util.Calendar Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR.MONTH.DAY_OF_M ...

  4. MySQL tips (日期时间操作/concat 等)

    MySQL tips (日期时间操作/concat 等) 1.  Query结尾要加一个分号: 2.  数据库和表 SHOW DATABASES;    USE YOUR_DB; SHOW TABLE ...

  5. mysql concat 日期_MySQL tips (日期时间操作/concat 等)

    1.  Query结尾要加一个分号: 2.  数据库和表 SHOW DATABASES;    USE YOUR_DB; SHOW TABLES; SHOW COLUMNS FROM study或者D ...

  6. Firebird日期时间操作

    最近在使用Firebird数据做 一项目,使用FireBird边用边学.(以下转贴) 查询2007年度以后的,12月份以上的数据记录,datetime为timestamp字段 select * fro ...

  7. mysql日期时间操作函数详解

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. win7可以设定每周从哪一天开始,win2003等不能方便的修改.有的是周日开始,有的是周一开始.而 ...

  8. mongo java 日期,Java 8日期/时间(JSR-310)类型与Spring Data MongoDB的映射

    我有Java 8日期/时间字段的简单文档 @Document public class Token { private Instant createdAt; ... } 我希望坚持使用Spring D ...

  9. java获取日期/时间

    获取年月日.小时分钟秒 public class DateTimeTest {public static void main(String[] args) {Calendar cal = Calend ...

  10. C#——常用的日期时间操作函数

    C#--常用的日期时间操作函数 C# 获取系统时间 System.DateTime currentTime=new System.DateTime(); 计算2个日期之间的天数差 DateTime d ...

最新文章

  1. 详解 | Dropout为何能防止过拟合?
  2. java 基础算法教程ppt,基础排序算法(附加java实现)
  3. 线程返回值的方式介绍
  4. 职业经理人的核心技能
  5. python数据处理实例-python数据分析实例(1)
  6. Oceanus:美团HTTP流量定制化路由的实践
  7. php控制器面向对象编程,php面向对象编程
  8. 有效软件开发的25条军规
  9. 解决Android Studio Import Sample网络连接失败问题
  10. SpringBoot配置国际化语言包
  11. MacBook 安装win7双系统、2013款MacBook air安装双系统教程
  12. dpdk内存管理分析
  13. 操作系统————应用题
  14. VS code:代码出现蓝色波浪线,提示显示 xxxx: Unknown word.cSpell
  15. 惠普战66二代 amd 处理器耳机插入后没声音的问题解决
  16. 非极大抑制(Non-Maximum Suppression)
  17. linux查看riak版本,riak源码阅读手记 压力测试
  18. python vlookup_多条件python中的Vlookup
  19. 和成熟男人谈恋爱是什么感觉
  20. 【洛谷 P1240】诸侯安置

热门文章

  1. 13.GitLab api
  2. 1.OAuth 简介
  3. 20. jQuery 遍历 - 祖先
  4. 39. Element compareDocumentPosition() 方法
  5. 2. PHP 自动转义函数
  6. 20190316 学习程序最重要的是思考,不是你会多少技能
  7. APP安全防护基本方法(混淆/签名验证/反调试)
  8. 从闭包到 语法糖 装饰器
  9. java设置随机数教程
  10. cogs 1111. 最短路