一、Date的基本概念以及使用
1、Date 类表示日期和时间(该类大部分方法已过时)
2、提供操纵日期和时间各组成部分的方法
3、Date 类的最佳应用之一是获取系统当前时间
4、获取系统当前时间是一个长整型数据Long, Date 类实际上只是一个包裹类, 它包含的是一个长整型数据,表示的是从GMT(格林尼治标准时间)1970年, 1 月 1日00:00:00这一刻之前或者是之后经历的毫秒数.
案例一: import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class TestNew { public static void main(String[] args) throws ParseException { /* * Date:时间类 */ //实例化对象:当前的系统时间 Date date = new Date(); // System.out.println(date); /* * 1秒=1000毫秒 */ Date d = new Date(60000); System.out.println(d); //获取年 int year = date.getYear()+1900; System.out.println(year); //获取月 int month = date.getMonth()+1; System.out.println(month); //获取日 int day = date.getDate(); System.out.println(day); //获取周几 int week = date.getDay(); System.out.println(week); //获取时 int hour = date.getHours(); System.out.println(hour); //获取分 int m = date.getMinutes(); System.out.println(m); //获取秒 int s = date.getSeconds(); System.out.println(s); //获取1970年1月1日0:0:0 到指定时间之间的毫秒数 long time = date.getTime(); System.out.println(time);
二、DateFormat的应用
1、DateFormat日期格式化类(抽象类)
A、String format(Date date) 方法用于格式化时间
B、static DateFormat getDateInstance() 获取日期的DateFormat 对象
C、static DateFormat getDateTimeInstance() 获取日期-时间的DateFormat 对象 static final DateFormat getDateTimeInstance(int dateStyle, int timeStyle)获取给定 日期和时间格式化风格 DateFormat 对象 (可选参数 short,full, long, medium ,)
2、功能:完成日期的显示格式化
A、只要通过向SimpleDateFormat 的构造函数传递格式字符串“EEEE-MM-dd-yyyy",
B、我们就能够指明自己想要的格式. 然后调用DateFormat(Date date)方法,得到想要的格式。
C、 EEEE是星期, MM是月, dd是日, yyyy是年. 字符的个数决定了日期是如何格式化的.传递"EE-MM-dd-yyyy"会显示 星期五-02-27-2009
案例二:
//实例化格式一个指定格式的 格式对象 SimpleDateFormat sdf = new SimpleDateFormat("YYYY年MM月dd HH:mm:ss"); System.out.println("格式化之前:"+date); //转换格式 String sDate = sdf.format(date); System.out.println("格式化之后:"+sDate); //定义一个 字符串的时间 String str = "1999年12月31日 23:59:59"; //实例化一个时间格式对象 SimpleDateFormat sdf2 = new SimpleDateFormat("YYYY年MM月dd日 HH:mm:ss"); //解析字符串时间 Date d2 = sdf2.parse(str); System.out.println(d2);
三、Calender类
问题:
问:我们现在已经能够格式化并创建一个日期对象了, 但是我们如何才能设置和获取日期数据的特定部分呢, 比如说小时, 日, 或者分钟? 我们又如何在日期的这些部分加上或者减去值呢?
答:使用Calendar 类。Calendar 类也是一个抽象类,它有一个子类GregorianCalendar,接下来我会利用这个子类来演示这个过程,请看以下代码
//使用GregorianCalendar类获取时间相关信息 calendar.get(Calendar.YEAR) 获取年 calendar.get(Calendar.MONTH) + 1) 获取月 cal.add(Calendar.YEAR, 2); //年上加2年 private void fun3() { Calendar cal = new GregorianCalendar(); //设置cal的年份为 2012年 cal.set(Calendar.YEAR, 2012); //打印年份 System.out.println(cal.get(Calendar.YEAR)); //设置月份 cal.set(Calendar.MONTH, 9); System.out.println(cal.get(Calendar.MONTH)); //设置年月日 cal.set(2018, 3, 2);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); System.out.println(sdf.format(cal.getTime())); cal.add(Calendar.YEAR, 2); //年上加2年 cal.add(Calendar.MONTH, 2);//月上加2 System.out.println(sdf.format(cal.getTime())); System.out.println(cal.get(Calendar.DAY_OF_WEEK));//获取星期几
//创建一个日期对象 //让我们看一个使用系统的当前日期和时间创建一个日期对象并返回一个长整数的简单例子. //这个时间通常被称为Java 虚拟机(JVM)主机环境的系统时间. import java.util.Date; public class DateExample1{ public static void main(String[] args){ Date date = new Date(); System.out.println(date.getTime()); } }
1、日期数据的定制格式:
import java.text.SimpleDateFormat; import java.util.Date; public class DateExample2{ public static void main(String[] args) { SimpleDateFormat bartDateFormat = new SimpleDateFormat(“EEEE-MMMM-dd-yyyy”); // E 星期中的天数, M 年中的月份 , D 年中的天数,y年 Date date = new Date(); System.out.println(bartDateFormat.format(date)); } }
2、日期格式化方法:
Date类型还有一些专门用于将日期格式化为字符串的方法,这些方法如下:
toDateString() //以特定于实现的格式显示星期几、月、日和年; toTimeString() //以特定于实现的格式显示时、分、秒和时区; toLocaleDateString() //以特定于地区的格式显示星期几、月、日和年; toLocaleTrimeString() //以特定于实现的格式显示时、分、秒; toUTCString() //以特定于实现的格式完整的UTC日期。
与toLocaleString()和toString()方法一样,以上这些字符串格式方法的输出也是因浏览器而异的,因此没有哪一个方法能够用来在用户界面中显示一致的日期信息。
3、日期/时间组件方法:
1、getUTCMinutes() 返回UTC日期中的分钟数(O到59)。
2、setMinutes(分) 设置日期中的分钟数。传入的值超过59则增加小时数
3、setUTCMinutes(分) 设置UTC日期中的分钟数。传入的值超过59则增加小时数
4、getSeconds() 返回日期中的秒数(O至IJ59)。
5、getUTCSeconds() 返回UTC日期中的秒数(0到59)。
6、setSeconds(秒) 设置日期中的秒数。传人的值超过了59会增加分钟数
7、set UTCSeconds(秒) 设置UTC日期中的秒数。传人的值超过了59会增加分钟数
8、getMilliseconds() 返回日期中的毫秒数
9、getUTCMilliseconds() 返回UTC日期中的毫秒数
10、setMilliseconds(毫秒) 设置日期中的毫秒数
11、setUTCMilliseconds(毫秒) 设置UTC日期中的毫秒数
12、getTimezoneOffset() 返回本地时间与UTC时间相差的分钟数。
例如,美国东部标准时间返回300。在某地进入夏令时的情况下,这个值会有所变化
4、日期和时间模式
1、字母 日期或时间元素 表示 示例
2、y 年 Year 1996; 96
3、M 年中的月份 Month July; Jul; 07
4、w 年中的周数 Number 27
5、W 月份中的周数 Number 2
6、D 年中的天数 Number 189
7、d 月份中的天数 Number 10
8、 F 月份中的星期 Number 2
9、E 星期中的天数 Text Tuesday; Tue
10、a Am/pm 标记 Text PM
11、H 一天中的小时数(0-23) Number 0
12、k 一天中的小时数(1-24) Number 24
13、K am/pm 中的小时数(0-11) Number 0
14、h am/pm 中的小时数(1-12) Number 12
15、m 小时中的分钟数 Number 30
16、s 分钟中的秒数 Number 55
17、S 毫秒数 Number 978
18、z 时区 General time zone Pacific Standard Time; PST; GMT-08:00
19、Z 时区 RFC 822 time zone -0800