当前位置: 首页 > news >正文

东莞高端网站设计微信腾讯会议

东莞高端网站设计,微信腾讯会议,cms建站系统开源,wordpress 301重定向一.java.util.Date类概述从JDK 1.0出现。表示一个日期和时间,精确到毫秒,内部getTime()从1970年1月1号开始算。1. java.util.Date类构造部份构造已经过时,重点看以下两个构造。public Date()从运行程序的此时此刻到时间原点经历的毫秒值&…

一.java.util.Date类概述

从JDK 1.0出现。

表示一个日期和时间,精确到毫秒,内部getTime()从1970年1月1号开始算。


1. java.util.Date类构造

部份构造已经过时,重点看以下两个构造。

public Date()

从运行程序的此时此刻到时间原点经历的毫秒值,转化成Date类对象,分配Date类对象并初始化此对象,以表示分配它的时间(精确到毫秒)。

public Date(long date)

将指定参数的毫秒值date,转化成Date对象,分配Date对象并初始化此对象,以表示自从标准基准时间(称为历元epoch),即1970年1月1号0点以来指定的毫秒数。

不过具体来说应该是8点,因为中国处于东八区(GMT+08:00)是比世界协调时间/格林尼治时间(GMT)快8个小时的时区,所以当格林尼治标准时间为0:00,东八区标准时间是8:00。

两个构造的使用场景选择

无参构造

可以自动设置当前系统时间的毫秒时刻

long类型的有参构造

可以自定义毫秒时刻。

1s=1000ms。


2.创建一个当前时间的Date对象

public static void main(String[] args) {Date date = new Date();System.out.println(date);//Sat Nov 06 14:11:12 CST 2022
}

打印的时候会自动调用toString方法,Date类进行了重写。

但是打印的格式怎么是外国的这种呢?

应该怎么转换成我们经常看的年月日形式呢?


3. Date类中常用的方法

System.out.println(date.getTime());//1636196765779

获取当前日期对象距离标准基准时间的毫秒值。

这串数字是从1970年1月1号开始算到至今的毫秒值。

有什么用呢?

public void setTime(long time)

设置当前日期对象距离标准基准时间的毫秒值,意味着改变了当前日期对象。

public Boolean after(Date when)

此日期是否在指定日期之后。

public Boolean before(Date when)

此日期是否在指定日期之前。

示例代码:

public static void main(String[] args) {//打印当前日期Date date1 = new Date();System.out.println(date1);//Sat Nov 06 14:11:12 CST 2022//创建以标准基准时间为基准,指定往后偏移1000msDate date2 = new Date(1000);System.out.println(date2);//Thu Jan 01 08:00:01 CST 1970//获取当前日期对象距离标准基准时间的毫秒值System.out.println(date1.getTime());//1636196765779System.out.println(date1.getTime());//1000//修改date1距离标准基准时间的毫秒值为2000date1.setTime(2000);System.out.println(date1);//Thu Jan 01 08:00:02 CST 1970date2.setTime(2000);System.out.println(date2);//Thu Jan 01 08:00:02 CST 1970//创建当前时间的对象Date date3 = new Date();System.out.println("date3的日期是否在date1之前"+date3.before(date1));//falseSystem.out.println("date3的日期是否在date1之后"+date3.after(date1));//true

二. DateFormat类概述

DateFormat是日期/时间格式化子类的’抽象类’

作用:

  1. 格式化:(日期——>文本)Date—>String

  1. 解析:(文本——>日期)String—>Date

由于DateFormat是一个抽象类,无法创建对象使用,可以使用其子类SimpleDateFormat。这个类需要一个格式(模式)来指定格式化或者解析的标准。

构造方法:

SimpleDateFormat(String pattern):使用给定模式并使用默认语言环境的日期格式符号的构造方法。

参数:

String pattern:代表日期时间的自定义格式。

模式:

字母不能更改,连接符号可以改变。

区分大小写 “yyyy-MM-dd”年月日

“HH:mm:ss” //时分秒

y

M

d

H

m

s

(区分大小写)

1. DateFormat类常用的方法

public String format(Date date):将Date对象格式化为字符串。

public Date parse(String source):将字符串解析为Date对象。

public static void main(String[] args) {Date date = new Date();SimpleDateFormat sdf=new SimpleDateFormat("yyyy年mm月dd日 HH时mm分ss秒")//格式化format() StringString s=sdf.format(date);System.out.println(s); 2022年04月22日 14时45分49秒---------------------------------//解析String str="2022-04-22 17:09:22"String str1="2022年04月22日 17时09分22秒"//报错,因为sdf格式模板和str格式不一样,无法解析Date date=sdf.parse(str);//正常,格式对上了Date date1=sdf.parse(str1);System.out.println(date); System.out.println(date1); 
}

三.java.util.Calendar类

从JDK1.1出现Calendar类后,Date类大部分方法都被弃用了。

Calendar类的功能要比Date类强大,可以方便的进行日期的计算,获取日期中的信息时考虑了时区等问题。且在实现方式上也比Date类要复杂一些。

由于Calendar类是抽象类,且Calendar类的构造方法是protected的,所以无法使用Calendar类构造来创建对象,API提供了getInstance方法用来创建对象。

1.创建一个当前日期的Calendar对象

Calendar calendar = Calendar.getInstance();//默认是当前日期

2.创建一个指定日期的Calendar对象

    Calendar calendar = Calendar.getInstance();calendar.set(2021, 5, 9);System.out.println(calendar.getTime());//Wed Jun 09 18:36:09 CST 2021

3.利用set方法设置日期

4.利用字段类型设置

public static void main(String[] args) {Calendar calendar = Calendar.getInstance();calendar.set(Calendar.YEAR,2022);calendar.set(Calendar.MONTH,11);calendar.set(Calendar.DAY_OF_MONTH,1);System.out.println(calendar.getTime());//Mon Dec 01 18:39:22 CST 2022
}

Calendar类中用一下这些常量表示不同意义

Calendar.YEAR——年

Calendar.MONTH——月

Calendar.DATE——日

Calendar.DAY_OF_MONTH——日期,和上面的字段意义一样

Calendar.HOUR——12小时制小时

Calendar.HOUR_OF_DAY——24小时制小时

Calendar.MINUTE——分

Calendar.SECOND——秒

Calendar.DAY_OF_WEEK——周几

5.利用add方法设置日期

官方解释:

* Adds or subtracts the specified amount of time to the given calendar field,

* based on the calendar's rules. For example, to subtract 5 days from

* the current time of the calendar, you can achieve it by calling:

* <p><code>add(Calendar.DAY_OF_MONTH, -5)</code>.

博主解释:

在原本的日期上继续加日期。

public static void main(String[] args) {Calendar calendar = Calendar.getInstance();calendar.set(Calendar.YEAR,2022);//2022年calendar.set(Calendar.MONTH,11);//11月calendar.set(Calendar.DAY_OF_MONTH,6);//6号calendar.add(Calendar.DAY_OF_MONTH,1);//往后加了一天,变成7号System.out.println(calendar.getTime());//Wed Dec 07 18:42:25 CST 2022
}

6.利用get方法获取日期

博主解释:

获取Calendar对象的年月日等日期参数。

public static void main(String[] args) {Calendar calendar = Calendar.getInstance();calendar.set(Calendar.YEAR,2022);calendar.set(Calendar.MONTH,7);calendar.set(Calendar.DAY_OF_MONTH,1);calendar.add(Calendar.DAY_OF_MONTH,2);System.out.println(calendar.get(Calendar.YEAR));//2022System.out.println(calendar.get(Calendar.MONTH));//7System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//3
}

四.类型转化

1、Date与long

 public static void main(String[] args) {Date date = new Date();long time = date.getTime();
}

2、Calendar与long

 public static void main(String[] args) {Calendar calendar = Calendar.getInstance();calendar.set(Calendar.YEAR,2021);calendar.set(Calendar.MONTH,11);calendar.set(Calendar.DAY_OF_MONTH,6);calendar.add(Calendar.DAY_OF_MONTH,2);long timeInMillis = calendar.getTimeInMillis();
}

3、Date与Calendar互转

(1)Date转Calendar

 public static void main(String[] args) {Date date = new Date();Calendar calendar = Calendar.getInstance();calendar.setTime(date);
}

(2)Calendar转Date

public static void main(String[] args) {Calendar calendar = Calendar.getInstance();calendar.set(Calendar.YEAR,2021);calendar.set(Calendar.MONTH,11);calendar.set(Calendar.DAY_OF_MONTH,6);calendar.add(Calendar.DAY_OF_MONTH,2);Date time = calendar.getTime();
}

4、String与Date互转

第二点有讲

5、String与Calendar互转

(1)Calendar 转化 String

 public static void main(String[] args) throws ParseException {Calendar calendar = Calendar.getInstance();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");String str = sdf.format(calendar.getTime());
}

(2)String 转化Calendar

public static void main(String[] args) throws ParseException {String str="2021-11-6";SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");Date date =sdf.parse(str);Calendar calendar = Calendar.getInstance();calendar.setTime(date);System.out.println(calendar.getTime());//Sat Nov 06 00:00:00 CST 2021
}

本文一部份借鉴了哪吒博主:

原文链接:https://blog.csdn.net/guorui_java/article/details/121183146


五. java.time.LocalDate, java.time.LocalTime, java.time.LocalDateTime类概述

从JDK 8后加入了第三代日期类,不在util包中了,转移到了time包中。

前面两代日期类的不足分析JDK1.0中包含了一个java.util.Date类,但是它的大多数方法已经在JDK1.1引入Calendar类之后被弃用了。而Calendar也存在问题是:

1)可变性:像日期和时间这样的类应该是不可变的。

2)偏移性:Date中的年份是从1900开始的,而月份都从0开始。

3)格式化:格式化只对Date有用,Calendar则不行。

4)此外,它们也不是线程安全的;不能处理闰秒等(每隔2天,多出1s)。


LocalDate(日期/年月日)

LocalTime(时间/时分秒)

LocalDateTime(日期时间/年月日时分秒)

LocalDate只包含日期,可以获取日期字段

LocalTime只包含时间,可以获取时间字段

LocalDateTime包含日期+时间,可以获取日期和时间字段。


1.三个类常用方法

// 使用 now() 返回表示当前日期时间的对象
LocalDateTime ldt = LocalDateTime.now(); //LocalDate.now();//LocalTime.now()
System.out.println(ldt);

使用 DateTimeFormatter 对象来进行格式化。

// 创建 DateTimeFormatter 对象
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String format = dateTimeFormatter.format(ldt);
System.out.println("格式化的日期=" + format);

获取对象中的年月日时分秒。

System.out.println("年=" + ldt.getYear());
System.out.println("月=" + ldt.getMonth());
System.out.println("月=" + ldt.getMonthValue());
System.out.println("日=" + ldt.getDayOfMonth());
System.out.println("时=" + ldt.getHour());
System.out.println("分=" + ldt.getMinute());
System.out.println("秒=" + ldt.getSecond());

分别设置日期和时间

LocalDate now = LocalDate.now(); //可以获取年月日
LocalTime now2 = LocalTime.now();//可以获取时分秒

对时间进行加减

//提供 plus 和 minus 方法可以对当前时间进行加或者减
//看看 890 天后,是什么时候 把 年月日-时分秒
LocalDateTime localDateTime = ldt.plusDays(890);
System.out.println("890 天后=" + dateTimeFormatter.format(localDateTime));//看看在 3456 分钟前是什么时候,把 年月日-时分秒输出
LocalDateTime localDateTime2 = ldt.minusMinutes(3456);
System.out.println("3456 分钟前 日期=" + dateTimeFormatter.format(localDateTime2));

2.DateTimeFormatter 格式日期类

类似于SimpleDateFormat。

DateTimeFormat dtf = DateTimeFormatter.ofPattern(格式);
String str = dtf.format(日期对象);

http://www.yayakq.cn/news/224398/

相关文章:

  • 唐山自助网站建设系统音乐网站开发 群
  • 青海省建设厅报名网站重庆网站建设就找承越
  • 做网站老板嫌弃太丑谁的锅不良人网页设计怎么做
  • 四川建设局网站首页dell网站设计特色
  • 中国新兴建设招聘网站自由贸易区的建设网站
  • 企业网站推广渠道有哪些哪个网站可以做行程攻略
  • 网站内搜索效果图网站接单
  • 做药品网站有哪些微信域名防封跳转系统
  • 天津做网站认准津坤科技wordpress 支持
  • 昆明网站关键词优化网站建设所需素材
  • 丹东制作网站公司wordpress 搬家 后台
  • wordpress如何自动采集网站图片访客留言网站
  • 扬州建设机械网站徐州制作公司网站
  • 淄博网站建设费用网站模板设计
  • 无锡企业网站制作公司有哪些市场监督管理局查询系统
  • 法华寺网站建设营销网站建设选择原则
  • 兼职网站建设推广人才上海免费模板建站
  • 专做正品的护肤品网站网站页面创意
  • 女式包包网站建设策划书公司网站建设长春
  • 马云不会代码怎么做的网站seo国外英文论坛
  • 泰安企业建站公司平台合肥建设云app
  • 上海做高端网站建设php网站开发工具
  • 北京大兴地区网站建设程序员招聘求职的网站
  • 在哪里做企业网站网站界面设计的要求
  • 做pop网站网页设计布局图
  • 制作网站的工作流程深圳制作网站的公司
  • 网站服务器租赁需要什么手续asp网站开发国内外现状
  • 产品review网站怎么做四川个人网站备案
  • 仿朋友圈网站建设wordpress全站使用cdn
  • 免费的网站域名公司网站维护主要做什么