网站首页 > java教程 正文
日期和时间
专门用来表示日期和时间的类:
1.Date (是long类型的包装) date日期
2.Calendar (抽象类,是历法的抽象) calendar日历
3.long (可以表示,一般不使用,表示1970至今毫的秒数) 相对时间(1970年)
Java中表示时间的类的本质:
1.Date=long + 操作 偏重时间,重点在一刹那时间本身
2.Calendar= long + 操作 偏重日历计算
时间的标准
GMT 1970.01.01开始
UTC 0开始
语法:
1.Date创建对象
Date date=new Date(); //默认值为系统的当前时间
Date date=new Date(年-1900,月-1,日); //年份需要减去1900 月份需要减1
2.获取年份
int year = date.getYear(); (已过时,不使用,有”千年虫”问题,并且有1900的误差,)
获取月份
int month = date.getMonth(); (已过时,不使用,0代表1月,需要加1)
(日期:Date,时:Hours,分: Minutes,秒: Seconds,星期几:Day)
3.Calendar创建对象 (最好使用Calendar,不使用Date)
Calendar cal=new GregorianCalendar(); //默认值为系统的当前时间
cal.get(2009,3-1,1) //设定到指定时间,月份需要减1
Calendar 抽象类 历法的抽象 new的是GregorianCalendar对象
GregorianCalendar(1582公历 一种历法)是Calendar类的子类
GregorianCalendar 就是公元历法(公历) = long类型 + 公历算法
4.获取年份
cal.get(Calendar.YEAR)
获取月份
cal.get(Calendar.MONTH) (0月代表1月,需要加1)
5.long创建对象
long now = System.currentTimeMillis();
(表示从格林威治开始时间(1970.1.1)至今的毫秒数)
获取年份
int year = now/1000/60/60/24/365 + 1970 (开始时间是1970所以要+1970)
不同日期时间类的相互转化
获取系统现在时间:
Date: new Date()
Calendar: new GregorianCalendar();
long: System.currentTimeMillis();
Date , long之间的相互转化
Date àlong date.getTime()
long à1. Date date = new Date(long); (long为long类型的对象引用名称)
2. Date date = new Date();
date. setTime(long); (long为long类型的对象引用名称)
Date,Caledar之间的相互转化
DateàCalendar Date date = new Date();
Calendar cal=new GregorianCalendar();
cal.setTime(date);
CalendaràDate Calendar cal=new GregorianCalendar();
cal.getTime();
Calecdar的add方法:可以在Calendar对象中的某个字段上增加/减少一定数值
cal.add(Calendar.YYY , X) X为正则加,X为负则减
EG:cal.add(Calecdar.Year , 100) 在当前的日期上加100年
Calecdar的set方法:调整日期到某一天
EG: 调整到当前周(DAY_OF_WEEK)的周五
cal.set(Calendar. DAY_OF_WEEK, Calendar.FRIDAY );
Date和String之间的转化
日期的输入和输出
1.日期输入的本质 是将格式化的字符串转换成Date类型
2.日期输出的本质 是将Date类型转化成格式化的字符串
3.Java.text.SimpleDateFormat
a.首先需要创建一个SimpleDateFormat
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//()中给字符串定义格式月份 M(month)必须大写 m代表分钟
b.sdf.parse(String) //将格式化的字符串转换成日期对象
sdf.format(date) //将日期对象格式化成字符串
- 上一篇: 在java中进行日期时间比较的4种方法
- 下一篇: Java8日期时间类使用详解,干货满满,不容错过哦
猜你喜欢
- 2024-10-05 Java中的时间(java中的时间函数)
- 2024-10-05 Java8日期时间类使用详解,干货满满,不容错过哦
- 2024-10-05 跟上Java8–日期和时间实用技巧,不知道你有没有学会?
- 2024-10-05 在java中进行日期时间比较的4种方法
- 2024-10-05 为什么不建议使用Date,而是使用Java8新的时间和日期API?
- 2024-10-05 Java计算时间差、日期差总结(java计算时间差值)
- 2024-10-05 Java 日期与时间梳理(java中的时间)
你 发表评论:
欢迎- 最近发表
-
- 你真的会用 Java 中的线程池吗?多个企业级线程池工具类封装实践
- 线程池的实现原理、优点与风险、以及四种线程池实现
- Java线程池ThreadPoolExecutor实现原理剖析
- 深入分析线程池的实现原理(线程池是干嘛的)
- 一文搞懂JAVA线程池工作原理(java线程池的工作流程)
- Java线程池的工作原理(java线程池的实现原理)
- 5分钟读懂C#中TcpClient、TcpListener和Socket三个类的角色
- JVM对象的创建过程(jvm运行过程中创建的对象一般存放在方法区)
- 对象组成与Java内存模型JMM分析(java对象在内存中存储的结构)
- JVM对象内存分配详细过程(栈上分配->TLAB->老年代->Eden区)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)