java 日期calendar_java成神之——date和calendar日期的用法
Date和Calendar日期的用法
Date类
System.currentTimeMillis() // 当前时间毫秒数
Date time = new Date();
time.getTime() // 当前毫秒值
time.setTime(100000000) // 根据毫秒值设置日期
java_util_Date和java_sql_Date的区别
java.util.Date类型的数据存到数据库需要转换成java.sql.Date
java.util.Date utilData = new java.util.Date();
java.sql.Date sqlData = new java.sql.Date(utilData.getTime());
SimpleDateFormat格式化时间
日期转字符串
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd hh:mm.ss");
String formattedDate = simpleDateFormat.format(Calendar.getInstance().getTime()); // 2018/09/20 04:40.03
字符串转日期
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd hh:mm.ss");
Date date = simpleDateFormat.parse("2018/09/20 04:40.03");
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, Locale.CHINA);
Date date = dateFormat.parse("2018/09/20");
DateFormat的几个属性
SHORT 6/30/09 30/06/09
MEDIUM Jun 30, 2009 30 juin 2009
LONG June 30, 2009 30 juin 2009
FULL Tuesday, June 30, 2009 mardi 30 juin 2009
LocalDate
LocalDate用来获取系统默认时间
LocalDate lDate = LocalDate.now(); // 2018-09-20 不包含时间信息
LocalDate lDate = LocalDate.of(2018, 9, 10);
LocalDate lDate = LocalDate.parse("2018-09-11");
LocalDate lDate = LocalDate.now(ZoneId.systemDefault()); // 根据系统默认时区获取时间
简单日期操作
LocalDate.now() // 2018-09-20
LocalDate.now().minusDays(1) // 2018-09-19
LocalDate.now().plusDays(1); // 2018-09-21
LocalDate.now().withMonth(6) // 2018-06-20
LocalDateTime
LocalDateTime的参数含义
LocalDateTime.of(year, month, dayOfMonth, hour, minute, second, nanoOfSecond);
LocalDateTime的使用
LocalDateTime lDateTime = LocalDateTime.now(); // 2018-09-20T16:17:54.248780300
LocalDateTime lDateTime = LocalDateTime.of(2018, 9, 10, 10, 30);
LocalDateTime lDateTime = LocalDateTime.parse("2018-09-10T10:30");
LocalDateTime lDateTime = LocalDateTime.now(ZoneId.systemDefault());
Date和LocalDate的相互转化
Date转换成LocalDate
Date date = Date.from(Instant.now());
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate转换成Date
LocalDate lDate = LocalDate.now();
Date date = Date.from(lDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
Date和LocalDateTime的相互转化
Date转换成LocalDateTime
Date date = Date.from(Instant.now());
LocalDateTime localDateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
LocalDateTime转换成Date
LocalDateTime lDateTime = LocalDateTime.now();
Date date = Date.from(lDateTime.atZone(ZoneId.systemDefault()).toInstant());
Calendar
用来获取日期的具体部分
Calendar cd = Calendar.getInstance();
int time = cd.get(Calendar.YEAR); // 获取年份
int time = cd.get(Calendar.MONTH) 1; // 月份从0开始,获取月份
int time = cd.get(Calendar.DAY_OF_MONTH); // 获取天
用来设置日期的具体部分
Calendar cd = Calendar.getInstance();
cd.set(Calendar.MONTH, 8); // 设置月份为9月
cd.set(1974, 6, 2, 8, 0, 0);
cd.add(Calendar.DAY_OF_MONTH, 2); // 时间偏移
Date time = cd.getTime(); // 将Calendar转化成Date类
GregorianCalendar
Calendar calendar = Calendar.getInstance();
Calendar calendar = new GregorianCalendar();
Calendar calendar = new GregorianCalendar(2016, Calendar.JANUARY, 1);
Calendar calendar = new GregorianCalendar(2016, Calendar.JANUARY, 1, 6, 55, 10);
calendar.add(Calendar.MONTH, -6); // 改变日期
calendar.roll(Calendar.MONTH, -1); // 改变日期的某一部分,其他字段不变
calendar.get(Calendar.AM_PM) // 获取某一日期部分
before_after_compareTo_equals
用来判断时间超前还是落后
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd hh:mm.ss");
Date date = simpleDateFormat.parse("2018/09/20 04:40.03");
Date date1 = simpleDateFormat.parse("2018/09/21 04:40.03");
date.after(date1) // false
date.before(date1) // true
用来判断时间是否相等
date.compareTo(date1) // -1 返回的是日期对比的order,返回0表示相等、-1表示小、1表示大
date.equals(date1) // false
清空MILLISECOND
clear方法最好只用来清空MILLISECOND,其他的日期部分可能没作用
Calendar c = Calendar.getInstance();
System.out.println(c.getTimeInMillis()); // 1537442289490
c.set(Calendar.MILLISECOND, 22);
System.out.println(c.getTimeInMillis()); // 1537442289022
c.clear(Calendar.MILLISECOND);
System.out.println(c.getTimeInMillis()); // 1537442289000
isBefore_isAfter_compareTo_equals
LocalDate lDate1 = LocalDate.of(2018, 9, 20);
LocalDate lDate2 = LocalDate.of(2012, 9, 19);
lDate1.isAfter(lDate2); //true
lDate1.isBefore(lDate2); //false
lDate1.compareTo(lDate2); // -1 返回的是日期对比的order,返回0表示相等、-1表示小、1表示大
lDate1.equals(lDate2); // false
lDate1.isEqual(lDate2); // false
时区
TimeZone.getDefault().getDisplayName(); // 中国标准时间
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("China/Shang_Hai"));
System.out.println(sdf.format(date)); // 2018-09-20 11:44:22
sdf.setTimeZone(TimeZone.getTimeZone("Europe/London"));
System.out.println(sdf.format(date)); // 2018-09-20 12:44:22
时间差值
LocalDate d1 = LocalDate.of(2018, 9, 10).plusDays(1);
LocalDate d2 = LocalDate.of(2018, 9, 16).plusMonths(1);
long days = ChronoUnit.DAYS.between(d1, d2); // 35
Instant
Instant now = Instant.now(); // 2018-09-20T11:55:12.234452700Z
LocalTime
LocalTime localtime = LocalTime.now(); // 20:03:57.909365400
LocalTime time1 = LocalTime.of(1, 0, 0);
LocalTime time2 = LocalTime.of(3, 1, 10);
time1和time2差值
System.out.println( time1.until(time2, ChronoUnit.MINUTES) ); // 121
System.out.println( time1.until(time2, ChronoUnit.HOURS) ); // 2
System.out.println( time1.until(time2, ChronoUnit.SECONDS) ); // 7270
System.out.println( ChronoUnit.MINUTES.between(time1, time2) ); // 121
System.out.println( ChronoUnit.HOURS.between(time1, time2) ); // 2
System.out.println( ChronoUnit.SECONDS.between(time1, time2) ); // 7270
时区
ZoneId zone = ZoneId.of("Asia/Shanghai");
LocalTime time1 = LocalTime.now();
LocalTime time2 = LocalTime.now(zone);
LocalTime time3 = LocalTime.parse("20:10:30");
时间差
long timeDiff = Duration.between(time1, time3).toMinutes();
long timeDiff1 = ChronoUnit.MINUTES.between(time1, time3);
System.out.println(time1); // 20:13:38.239060900
System.out.println(time2); // 20:13:38.239060900
System.out.println(time3); // 20:10:30
System.out.println(timeDiff); // -3
System.out.println(timeDiff1); // -3
结语
本文章是java成神的系列文章之一
如果你想知道,但是本文没有的,请下方留言
我会第一时间总结出来并发布填充到本文
来源:http://www.icode9.com/content-1-29301.html
java 日期calendar_java成神之——date和calendar日期的用法相关推荐
- 字符串日期 转换成 需要的格式的 字符串日期(超强)
字符串日期 转换成 需要的格式的 字符串日期 调用:dateformat(String pattern,Object date, boolean ifNullGetNow): 参数1:patern:你 ...
- java date 转换calendar_Java中日期格式(String、Date、Calendar)的相互转换
1 packageday20190318;2 3 importjava.text.ParseException;4 importjava.text.SimpleDateFormat;5 importj ...
- java 数字翻译成英文_Java实现将数字日期翻译成英文单词的工具类实例
本文实例讲述了Java实现将数字日期翻译成英文单词的工具类.分享给大家供大家参考,具体如下: package com.sunyard.etp.ag.util; import java.math.Big ...
- java stream optional_java成神之——Stream和Optional
Stream流 基本使用 Stream myStream = Stream.of("a", "", "b", "c", ...
- 2021年Java工程师飞升成神之路
点击关注"爱笑的架构师" 右上角"设为星标"好文章送达比别人快 最近有很多读者问:怎样成为一名架构师? 在大家眼中『架构师』的地位高高在上,不可逾越,其实不然, ...
- oracle 日期转换成毫秒数,ORACLE:毫秒与日期的相互转换,获取某天的信息
毫秒转换为日期 SELECT TO_CHAR(1406538765000 / (1000 * 60 * 60 * 24) + TO_DATE('1970-01-01 08:00:00', 'YYYY- ...
- JAVA 的 Date、Calendar的常用用法
一.Date与String的互转用法,这里需要用到SimpleDateFormat Date date = new Date(); //设置格式 SimpleDateF ...
- java入门到成神之路的宝藏资源
大家好,给大家先做个自我介绍 我是码上代码,大家可以叫我码哥 我也是一个普通本科毕业的最普通学生,我相信大部分程序员或者想从事程序员行业的都是普通家庭的孩子,所以我也是靠自己的努力,从毕业入职到一家传 ...
- Java程序员成神之路
类变量和类方法(static) 什么时候需要用类变量 当我们需要让某个类共享同一个变量时,可以考虑将变量设置为类变量 类变量和实例变量的区别 类变量是该类的所有对象共享的,而实例变量是每个对象独享的 ...
最新文章
- ASP.NET Core 2.1 源码学习之 Options[1]:Configure
- Dominant Character 思维,字符串,贪心
- 使用DBLink方式同步远程数据库中含Blob、Clob字段表的问题解决
- PHP内核的学习--PHP生命周期
- IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习保护API
- 经典案例之MouseJack
- 一招教你数据仓库如何高效批量导入与更新数据
- 水仙花数python代码输入一个介于3到5的正整数_Python练习题——自幂数(水仙花数)...
- 数据结构与算法之-----栈的应用(一)
- 有关嵌入式、单片机、51单片机、STM32、的一些概念详解
- Java项目:前台展示+后台管理结合的在线购书系统(java+Springboot+ssm+mysql+maven)
- mysql怎么设主键和外键_MySQL主键外键设定方法
- 外接键盘Win键不能的使用问题以及FN键的使用
- 【SPSS】第3讲学习笔记——数据导入和查看
- 数据库查询-分数排名
- 令人愉快的 Nuxt3 教程 (二): 快速轻松地搭建博客
- win10系统 开启蓝牙服务器,win10系统蓝牙在哪开启?
- 篮球比赛计时计分系统java_非常实用的java自动答题计时计分器
- 物联网之NB-IoT技术实践开发三
- 机器视觉光源颜色选择