日期类

mac2022-06-30  29

Date类

Date 类是 java.util.Date 类,不是 java.sql.Date。

构造方法

//使用当前日期和时间来初始化对象 Date(); //接收一个参数,该参数是从1970年1月1日起的毫秒数 Date(long millisec);

返回毫秒数 getTime

//返回自 1970年1月1日 00:00:00 GMT 以来此 Date 对象表示的毫秒数 long getTime(); //下面两种返回的都是当前时间的毫秒数 new Date().getTime(); System.currentTimeMillis();

设置毫秒数 setTime

//用自 1970年1月1日 00:00:00 GMT 以后 time 毫秒数设置时间和日期 void setTime(long time)

判断时间先后 after

//若当调用此方法的 Date 对象在指定日期之后返回 true,否则返回 false。 boolean after(Date date);

判断时间先后 before

//若当调用此方法的 Date 对象在指定日期之前返回 true,否则返回 false。 boolean before(Date date);

转换字符串 toString

//把此 Date 对象转换为以下形式的 String:dow mon dd hh:mm:ss zzz yyyy //其中:dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。 String toString()

SimpleDateFormat类

日期转字符串 format

y 年 M 月 d 日 H 24进制的小时 h 12进制的小时 m 分钟 s 秒 S 毫秒 E 星期几 D 一年的第几天 w 一年中第几周 W 一个月中第几周 a AM还是PM SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS" ); Date d= new Date(); String str = sdf.format(d); System.out.println("当前时间通过 yyyy-MM-dd HH:mm:ss SSS 格式化后的输出: "+str); //当前时间通过 yyyy-MM-dd HH:mm:ss SSS 格式化后的输出: 2019-06-09 23:06:20 164 SimpleDateFormat sdf1 =new SimpleDateFormat("yyyy/MM/dd"); Date d1= new Date(); String str1 = sdf1.format(d1); System.out.println("当前时间通过 yyyy/MM/dd 格式化后的输出: "+str1); //当前时间通过 yyyy/MM/dd 格式化后的输出: 2019/06/09

字符串转日期 parse

SimpleDateFormat sdf =new SimpleDateFormat("yyyy/MM/dd HH:mm:ss" ); String str = "2019/12/5 12:12:12"; try { Date d = sdf.parse(str); System.out.printf("字符串 %s 通过格式 yyyy/MM/dd HH:mm:ss %n转换为日期对象: %s",str,d.toString()); } catch (ParseException e) { e.printStackTrace(); } //字符串 2019/12/5 12:12:12 通过格式 yyyy/MM/dd HH:mm:ss //转换为日期对象: Thu Dec 05 12:12:12 CST 2019

字符串模式 (yyyy/MM/dd HH:mm:ss) 需要和字符串格式保持一致

Calendar类

Calendar 类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,使用 getInstance() 方法创建即可。

获取 Calendar 对象

//默认是当前日期 Calendar c = Calendar.getInstance(); //创建一个代表2019年5月12日的Calendar对象 Calendar c1 = Calendar.getInstance(); c1.set(2019, 5 - 1, 12); //月份从0开始计

filed 字段类型

Calendar.YEAR 年份 Calendar.MONTH 月份,0-11 Calendar.DATE 日期 Calendar.DAY_OF_MONTH 日期,和上面的字段意义完全相同 Calendar.HOUR 12小时制的小时 Calendar.HOUR_OF_DAY 24小时制的小时 Calendar.MINUTE 分钟 Calendar.SECOND 秒 Calendar.DAY_OF_WEEK 星期几

Calendar 与 Date 转换

//用给定的Date设置Calendar的当前时间 void setTime(Date date); //获取日历当前时间 Date getTime(); //Calendar转Date Calendar c = Calendar.getInstance(); Date d = c.getTime(); //Date转Calendar Date d1 = new Date(0); //日期调成: 1970.1.1 08:00:00 c.setTime(d1);

设置字段 set

//只设定某个字段,例如日期的值, 例 c1.set(Calendar.DATE,10) void set(int field,int value); //设置年月日 void set(int year,int month,int date); //设置年月日时分秒 void set(int year,int month,int date,int hourOfDay,int minute,int second);

添加或减去时间 add

void add(int field, int amount); Calendar c1 = Calendar.getInstance(); //当前日期加10天 c1.add(Calendar.DATE, 10); //当前日期减10天 c1.add(Calendar.DATE, -10);

添加或减去时间 roll

void roll(int field, int amount);

roll 方法和 add 类似,区别在于加上 amount 后超过该字段最大值后,不会向上一个字段进位。

Calendar ca1 = Calendar.getInstance(); ca1.set(2003, 7, 23, 0, 0, 0); // 2003-8-23 ca1.add(Calendar.MONTH, 6); //2004-2-23 Calendar ca2 = Calendar.getInstance(); ca2.set(2003, 7, 23, 0, 0, 0); // 2003-8-23 ca2.add(Calendar.MONTH, 6); //2003-2-23

获取 filed 字段值 get

void get(int filed); //获取当前时间月份 Calendar c1 = Calendar.getInstance(); int month = c1.get(Calendar.MONTH) + 1;

获取 filed 最大值 getActualMaximum

//返回当前日期,给定字段的最大值,例如月份返回 11 int getActualMaximum(int field);

获取 filed 最小值getActualMaximun

//返回当前日期,给定字段的最小值, 例如月份返回 0 int getActualMinimum(int field);

转载于:https://www.cnblogs.com/zongmin/p/11342812.html

最新回复(0)