6.日期类
6.1Date类概述和构造方法
import java.util.Date; //Date() // 分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。 //Date(long date) // 分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。 public class DateDemo01 { public static void main(String[] args) { //public Date() Date date = new Date(); System.out.println(date); Date date1 = new Date(1000*60*60*24);//中国在东八区+8hour System.out.println(date1); } }
6.2 Date 类的常用方法
方法名 |
说明 |
public long getTime() |
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。 |
public void setTime(long time) |
设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。 |
/* public long getTime()返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。 返回: 自 1970 年 1 月 1 日 00:00:00 GMT 以来此日期表示的毫秒数。 setTime public void setTime(long time)设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。 参数: time - 毫秒数。 */ public class DateDemo02 { public static void main(String[] args) { Date date = new Date(); long time = date.getTime(); System.out.println(time / 365 / 24 / 60 / 60 / 1000); //public void setTime(long time)设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。 Date date1 = new Date(); long time1 = 1000*60*60; date1.setTime(time1); System.out.println(date1); } }
6.3 SimplDateFormat 类概述
public class SimpleDateFormatextends DateFormatSimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。但是,仍然建议通过 DateFormat 中的 getTimeInstance、getDateInstance 或 getDateTimeInstance 来创建日期-时间格式器。每一个这样的类方法都能够返回一个以默认格式模式初始化的日期/时间格式器。可以根据需要使用 applyPattern 方法来修改格式模式。有关使用这些方法的更多信息,请参阅 DateFormat。
日期和时间模式
日期和时间格式由日期和时间模式 字符串指定。在日期和时间模式字符串中,未加引号的字母 ‘A’ 到 ‘Z’ 和 ‘a’ 到 ‘z’ 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (’) 引起来,以免进行解释。"’’" 表示单引号。所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串,或者在解析时与输入字符串进行匹配。
定义了以下模式字母(所有其他字符 ‘A’ 到 ‘Z’ 和 ‘a’ 到 ‘z’ 都被保留):
SimplDateFormat 构造方法
构造方法摘要
SimpleDateFormat()
用默认的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
SimpleDateFormat(String pattern)
用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
SimpleDateFormat(String pattern, DateFormatSymbols formatSymbols)
用给定的模式和日期符号构造 SimpleDateFormat。
SimpleDateFormat(String pattern, Locale locale)
用给定的模式和给定语言环境的默认日期格式符号构造 SimpleDateFormat。
Calendar类概述
Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
该类还为实现包范围外的具体日历系统提供了其他字段和方法。这些字段和方法被定义为 protected。
与其他语言环境敏感类一样,Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象。Calendar 的 getInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化
Calendar rightNow = Calendar.getInstance();
Calendar 对象能够生成为特定语言和日历风格实现日期-时间格式化所需的所有日历字段值**
import java.util.Calendar; public class CalendarDemo { public static void main(String[] args) { //获取对象 Calendar c = Calendar.getInstance();//多态创建对象 // System.out.println(c);//[time=1655449283220, //public int get (int filed) int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MONTH)+1; int date = c.get(Calendar.DATE); System.out.println(year+"年"+month+"月"+date+"日"); } }
6.7 Calendar的常用方法
int get(int field)
返回给定日历字段的值。
abstract void add(int field, int amount)
根据日历的规则,为给定的日历字段添加或减去指定的时间量。
void set(int year, int month, int date)
设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。
import java.util.Calendar; public class CalendarDemo { public static void main(String[] args) { //获取对象 Calendar c = Calendar.getInstance();//多态创建对象 // System.out.println(c);//[time=1655449283220, //public int get (int filed) //输出十五年后的,三个月后的,十天前 c.add(Calendar.YEAR,15); c.add(Calendar.MONTH,3); c.add(Calendar.DATE,-10); int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MONTH)+1; int date = c.get(Calendar.DATE); System.out.println(year+"年"+month+"月"+date+"日"); } }