Java Date类的使用总结
Date类表示特定的瞬间,精确到毫秒。
有2种方法可以创建Date对象(这里不考虑已过时的构造函数)
1、public Date()——分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
1 @Test 2 public void test1() { 3 Date date = new Date(); 4 System.out.println(date); 5 }
Sun Oct 23 22:39:14 CST 2016
2、public Date(long date)——根据给定的毫秒值创建日期对象。
1 @Test 2 public void test2() { 3 long time = System.currentTimeMillis(); 4 Date date = new Date(time); 5 System.out.println(date); 6 }
Sun Oct 23 22:41:42 CST 2016
介绍完了Date的构造函数后,接下来来看看日期与毫秒值的相互转换
1、public long getTime()——日期转毫秒值
通过getTime方法可以将一个日期类型转换为long类型的毫秒值
1 @Test 2 public void test3() { 3 Date date = new Date(); 4 System.out.println(date.getTime()); 5 }
1477234414353
2、public void setTime(long time)——毫秒值转日期
1 @Test 2 public void test4() { 3 long time = System.currentTimeMillis(); 4 Date date = new Date(); 5 date.setTime(time); 6 System.out.println(date); 7 }
Sun Oct 23 22:53:05 CST 2016
当然也可以通过构造函数public Date(long date)将毫秒值转为日期类型。
通常我们会比较2个日期的大小,Date类提供以下方法用来比较2个日期的相关操作
1、public boolean before(Date when)——测试此日期是否在指定日期之前,当且仅当此Date对象表示的瞬间比when表示的瞬间早,才返回true;否则返回false。
1 @Test 2 public void test5() { 3 Date date1 = new Date(1000); 4 Date date2 = new Date(2000); 5 System.out.println(date1.before(date2)); 6 }
true
2、public boolean after(Date when)——测试此日期是否在指定日期之后,当且仅当此Date对象表示的瞬间比when表示的瞬间晚,才返回true;否则返回false。
1 @Test 2 public void test6() { 3 Date date1 = new Date(1000); 4 Date date2 = new Date(2000); 5 System.out.println(date1.after(date2)); 6 }
false
3、public int compareTo(Date anotherDate)——比较两个日期的顺序。
如果参数Date等于此Date,则返回值0;如果此Date在Date参数之前,则返回小于0的值;如果此Date在Date参数之后,则返回大于0的值。
1 @Test 2 public void test7() { 3 Date date1 = new Date(1000); 4 Date date2 = new Date(2000); 5 System.out.println(date1.compareTo(date2)); 6 }
-1
Java 日期格式化 DateFormat与SimpleDateFormat
import java.util.Date; import java.text.DateFormat; /** * 格式化时间类 * DateFormat.FULL = 0 * DateFormat.DEFAULT = 2 * DateFormat.LONG = 1 * DateFormat.MEDIUM = 2 * DateFormat.SHORT = 3 * @author Michael * @version 1.0, 2007/03/09 */ public class Test{ public static void main(String []args){ Date d = new Date(); String s; /** Date类的格式: Sat Apr 16 13:17:29 CST 2006 */ System.out.println(d); System.out.println("******************************************"); /** getDateInstance() */ /** 输出格式: 2006-4-16 */ s = DateFormat.getDateInstance().format(d); System.out.println(s); /** 输出格式: 2006-4-16 */ s = DateFormat.getDateInstance(DateFormat.DEFAULT).format(d); System.out.println(s); /** 输出格式: 2006年4月16日 星期六 */ s = DateFormat.getDateInstance(DateFormat.FULL).format(d); System.out.println(s); /** 输出格式: 2006-4-16 */ s = DateFormat.getDateInstance(DateFormat.MEDIUM).format(d); System.out.println(s); /** 输出格式: 06-4-16 */ s = DateFormat.getDateInstance(DateFormat.SHORT).format(d); System.out.println(s); /** 输出格式: 2006-01-01 00:00:00 */ java.text.DateFormat format1 = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); s = format1.format(new Date()); System.out.println(s); /** 输出格式: 2006-01-01 01:00:00 */ System.out.println((new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss")).format(new Date())); /** 输出格式: 2006-01-01 13:00:00 */ System.out.println((new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(new Date())); /** 输出格式: 20060101000000***/ java.text.DateFormat format2 = new java.text.SimpleDateFormat("yyyyMMddhhmmss"); s = format2.format(new Date()); System.out.println(s); } }
补充一下:
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
System.out.println("System Date: " + cal.get(Calendar.MONTH+1));
注意下,月份是从0开始的,要Calendar.MONTH+1才可以的