专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java超级基础之日期与时间(java 日期操作)

temp10 2024-10-05 01:12:10 java教程 10 ℃ 0 评论

日期和时间

专门用来表示日期和时间的类:

Java超级基础之日期与时间(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) //将日期对象格式化成字符串

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表