博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 日期时间
阅读量:2420 次
发布时间:2019-05-10

本文共 2563 字,大约阅读时间需要 8 分钟。

目录

 

时间日期类

Date

// 获取当前时间戳,msSystem.currentTimeMillis();// 获取指定时间戳的Date对象Date date1 = new Date(11111111111111L);// 缺省参数默认取当前时间戳Date date2 = new Date();// 获取时间戳date1.getTime();

Date的大部分方法都过时了,仅仅用new Date()来获取当前日期时间,如果要进行其它操作,则使用其它得日期时间类。

 

Calendar

// 使用静态方法获取实例,默认取当前的时间日期Calendar calendar=Calendar.getInstance();// 设置指定字段calendar.set(Calendar.YEAR,2020);// 设置年月日calendar.set(2020,1,1);// 设置年月日时分秒calendar.set(2020,1,1,1,1,1);//设置Date类型calendar.setTime(new Date());// 获取指定字段calendar.get(Calendar.YEAR)// 0-11,0表示1月calendar.get(Calendar.MONTH)//一年中的第几周int weekYear = calendar.getWeekYear();//获取DateDate date = calendar.getTime();

 

jdk 8新增的LocalDateTime

//当前时间LocalDateTime ldt1=LocalDateTime.now();//指定时间LocalDateTime ldt2=LocalDateTime.of(2020,1,1,1,1,1);//获取指定字段的值int year = ldt1.getYear();

 

日期时间的格式化

DateFormat

// 只格式化日期DateFormat df1 = DateFormat.getDateInstance();// 只格式化时间DateFormat df2 = DateFormat.getTimeInstance();// 格式化日期时间DateFormat df3 = DateFormat.getDateTimeInstance();// 均可指定格式,DateFormat类的常量,缺省时默认都是MEDIUM// 日期:SHORT => 2019/5/13 , MEDIUM => 2019年5月13日 , FULL => 2019年5月13日星期一DateFormat df4 = DateFormat.getDateInstance(DateFormat.SHORT);// 时间:SHORT => 下午10:16 , MEDIUM => 下午10:17:06 , FULL => 中国标准时间 下午10:18:44DateFormat df5 = DateFormat.getTimeInstance();// 日期格式、时间格式DateFormat df6 = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);Date date = new Date();// 格式化Date对象,返回StringString srt = df1.format(date);

 

SimpleDateFormat

SimpleDateForm是DateForm的子类,比DateForm更简单、强大。

// 指定格式,可以自定义格式。毫秒是 SSS SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");SimpleDateFormat sdf2 = new SimpleDateFormat("y年的第D天");// 格式化Date对象,返回字符串Date date = new Date();String str1 = sdf1.format(date);String str2 = sdf2.format(date);
占位符 描述
y 四位数年份
M
d
h 时,12小时制
H 时,24小时制
m
s
S 毫秒
D 一年中的第几天
w 一年中第几个星期
E 一周中的第几天

SimpleDateFormat很常用,使用时需要注意2个问题

  • 传入时间的精度要大于等于格式的精度,比如格式为yyyy-MM-dd 精确到天,传入时间精度至少到天,也可以精确到时、分、秒、毫秒。
  • SimpleDateFormat不是线程安全的,使用时最好定义为局部变量,或者封装为工具类,避免出现多线程问题。

 

DateTimeFormatter

DateTimeFormatter相当于DateFormat、SimpleDateFormat的结合体

DateTimeFormatter df1 = DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT);   //格式化日期DateTimeFormatter df2 = DateTimeFormatter.ofLocalizedTime(FormatStyle.SHORT);    //格式化时间DateTimeFormatter df3 = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT, FormatStyle.SHORT);   //格式化日期时间DateTimeFormatter df4 = DateTimeFormatter.ofPattern("y-M-d H:m:s");  //自定义格式// 日期用LocalDate,时间用LocalTime,日期时间用LocalDateTimeLocalDateTime date = LocalDateTime.now();// 格式化,返回StringString format = df1.format(date);

转载地址:http://hgqlb.baihongyu.com/

你可能感兴趣的文章
软件开发行业,年轻与大龄程序员的生存现状
查看>>
王者荣耀活动精选 Blink 第二弹来袭!
查看>>
打开数“智”化之门,一字之差带来的思考
查看>>
阿里技术人的成长路径是什么?
查看>>
你值得拥有!更省钱地完成数据监听
查看>>
漫画 | TCP,一个悲伤的故事
查看>>
张一鸣无圈胜破圈?
查看>>
抓紧!抓紧!CSDN年终重榜福利来了~人手一份,快来投稿!!
查看>>
干货! AI 推断解决方案栈 Vitis AI 全流程独家解析
查看>>
真相了 | 敲代码时,程序员戴耳机究竟在听什么?
查看>>
回首互联网十年,我们能从八次烧钱大战中学到什么
查看>>
漫画:如何辨别二逼互联网公司!?
查看>>
麒麟信安面向场景化创新,赋能openEuler商业验证
查看>>
王者又连跪了?快让 AI 帮你上分!
查看>>
1 分钟带你认识从 "�" 到 "锟斤拷"
查看>>
3 年培养 10 万“码农”,郑州推出“码农计划”
查看>>
一个三本程序猿的大厂逆袭之路
查看>>
程序员弃码投中医?还做成了不错的生意! | 极客视频
查看>>
百度一 29 岁程序员因“篡改数据”被抓
查看>>
去年我年薪 30W,今年我一天做 3 顿饭
查看>>