Java之时间类1(JDK7以前)

本文介绍了Java中的Date、SimpleDateFormat和Calender类,包括它们各自的功能、用途和使用方法,如时间计算、格式化字符串和日期操作等。
摘要由CSDN通过智能技术生成

目录

一、Date时间类

1、时间相关知识

2、什么是Date类 

3、Date类的使用

二、SimpleDateFormat类

1、什么是SimpleDateFormat类

2、SimpleDateFormat类的作用

 3、SimpleDateFormat类的使用

三、Calender类

1、什么是Calender类

2、Calender类的使用 


一、Date时间类

1、时间相关知识

全世界的时间,有一个统一的计算标准

        格林威治/格林尼治时间(Greenwich Mean Time),简称GMT

计算核心:地球自转一天是24小时,太阳直射时为正午12点

格林尼治时间是以太阳经过格林尼治“本初子午线”的一刻为标准。但是,地球公转的速度略有差异,隔几年就得调一次时间。

2012年1月,国际通讯联盟会议上将决定是否取消用了将近130年的格林尼治标准时间。用原子钟替换。

原子钟是一种钟,它以原子共振频率标准来计算及保持时间的准确。原子钟是世界上已知最准确的时间测量和频率标准,也是国际时间和频率转换的基准,用来控制电视广播和全球定位系统卫星的讯号。 

中国标准时间:

        世界标准时间+8小时

时间单位换算

        1秒     =  1000毫秒

        1毫秒 = 1000微妙

        1微妙 = 1000纳秒

2、什么是Date类 

        Java中的Date类是一个表示日期和时间的类,它存储了自1970年1月1日00:00:00 GMT以来的毫秒数。它提供了许多方法来操作和格式化日期和时间。 

        但是需要注意的是,Date类已经过时,不再推荐在新的代码中使用它。推荐使用java.time包中的类,比如LocalDate、LocalTime、LocalDateTime等。

3、Date类的使用
public Date()创建Date对象,表示当前时间
public Date(long date)创建Date对象,表示指定时间                
public void setTime(long time)设置/修改毫秒值
public long getTime()获取时间对象的毫秒值
// 创建Date对象,表示当前时间
Date d = new Date();
System.out.println(d);

//创建Date对象,表示指定时间
Date d = new Date(0L);
System.out.println(d); // Thu Jan 01 08:00:00 CST 1970

// 设置/修改毫秒值
d.setTime(1000L);
System.out.println(d); // Thu Jan 01 08:00:01 CST 1970

// 获取时间对象的毫秒值
long time = d.getTime();
System.out.println(time); // 1000

二、SimpleDateFormat类

1、什么是SimpleDateFormat类

        Java中的SimpleDateFormat类可以将日期对象格式化成指定模式的字符串,也可以将字符串解析成日期对象。

        该类可以使用一些预定义的模式,例如“yyyy-MM-dd HH:mm:ss”,或者可以自定义模式。它还可以设置Locale以适应不同的语言环境。

        y  年  , M  月  ,d  日 ,H  时 ,m  分 ,s  秒

2、SimpleDateFormat类的作用
  • 格式化:把时间变成我们喜欢的格式。
    • 2023-12-10
    • 2023/12/10
    • 2023年12月10日
  • 解析:把字符串表示的时间变成Date对象
 3、SimpleDateFormat类的使用
public SimpleDateFormat()构造一个SimpleDateFormat,使用默认格式
public SimpleDateFormat(String pattern)构造一个SimpleDateFormat,使用指定格式
public final String format(Date date)格式化(日期对象 -> 字符串)
public Date parse(String source)解析(字符串 -> 日期对象)
//构造一个SimpleDateFormat,使用默认格式
SimpleDateFormat sdf = new SimpleDateFormat();
String str = sdf.format(new Date());
System.out.println(str);


//构造一个SimpleDateFormat,使用指定格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:dd");
String str = sdf.format(new Date());
System.out.println(str);


// 解析(字符串 -> 日期对象)
// 创建对象的格式要跟字符串中的格式完全一致,否则会报错
String str = "2023-12-10";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(str);
System.out.println(date);

三、Calender类

1、什么是Calender类

        Java中的Calendar类是一个抽象类,提供了用于操作日期和时间的方法。它是Java日期和时间API的一部分,可以处理日历字段,例如年、月、日期、小时和分钟等。Calendar类还可以执行基本的时间算术运算,例如添加和减去日期和时间。

        Calender是一个抽象类,不能直接创建对象,需要使用它的静态方法getInstance()来创建

2、Calender类的使用 
public final Date getTime()获取日期对象
pulbic final setTime(Date date)给日历设置日期对象
public long getTimeInMillis()拿到时间毫秒值
public void setTimeInMillis(long millis)给日历设置时间毫秒值
public int get(int field)取日历中的某个字段信息
public void set(int field,int value)修改日历的某个字段信息
public void add(int field,int amount)为某个字段增加/减少指定的值

// 获取Calendar对象
// 底层原理:
// 会根据系统的不同时区来取不同的日历对象,默认表示当前时间。
// 把会把时间中的纪元,年,月,日,时,分,秒,星期,等等的都放到一个数组当中
// 细节:
// 月份:范围 0 ~ 11 如果获取出来的是 0 .那么实际上是 1 月。
// 星期:在老外的眼里,星期日是一周中的第一天
//      1(星期日)  2(星期一)  3 (星期二) 4(星期三)  5(星期四)  6(星期五)  7(星期六)
Calendar c = Calendar.getInstance();
System.out.println(c);

// 获取日期对象给
Date date = c.getTime();
System.out.println(date);

// 日历设置日期对象
Date d = new Date(0);
c.setTime(d);
System.out.println(c);

// 拿到时间毫秒值
long time = c.getTimeInMillis();
System.out.println(time);

// 给日历设置时间毫秒值
c.setTimeInMillis(1000L);
System.out.println(c);

// 取日历中的某个字段信息
//int year = c.get(1);
int year = c.get(Calendar.YEAR);
System.out.println(year);

// 修改日历的某个字段信息
c.set(Calendar.YEAR,2000);
System.out.println(c);

// 为某个字段增加/减少指定的值
// 正数增加,负数减少
c.add(Calendar.YEAR,10);
System.out.println(c);

c.add(Calendar.YEAR,-5);
System.out.println(c);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值