java.util.Date
子類:
java.sql.Date
java.sql.Time
java.sql.Timestamp
java.text.SimpleDateFormat (支持其它幾個時間類的格式化)
java.util.Calendar Calendar類是一個抽象基類,主要用於日期之間的各種計算獲取 獲取對象的方式 Calendar cal = Calendar.getInstance();
java.util.Date日期格式為:年月日時分秒 在除了SQL語句的情況下面使用
java.sql.Date日期格式為:年月日 是針對SQL語句使用的
java.sql.Time日期格式為:時分秒 是針對SQL語句使用的
java.sql.Timestamp日期格式為:年月日時分秒納秒(毫微秒)
1 import java.util.Date; 2 3 public class DateTest { 4 public static void main(String[] args) { 5 Date date = new Date(); 6 System.out.println(date); 7 } 8 9 } 10 //執行結果: 11 //Thu Apr 04 12:49:59 CST 2019
1 import java.sql.Date; 2 //使用給定的毫秒時間值構造日期對象。如果給定的毫秒值包含時間信息,驅動程序將 3 //把時間組件設置為默認時區(運行應用程序的Java虛擬機的時區)中對應於0 GMT的時間。 4 public class DateTest { 5 public static void main(String[] args) { 6 Date date = new Date(111111111); 7 System.out.println(date); 8 } 9 10 } 11 執行結果: 12 1970-01-02
import java.sql.Time; import java.util.Date; public class DateTest { public static void main(String[] args) { Date date = new Date(); Time time = new Time(date.getTime()); System.out.println(time); } } 執行結果: 13:08:42
1 import java.sql.Timestamp; 2 import java.util.Date; 3 4 public class DateTest { 5 public static void main(String[] args) { 6 Date date = new Date(); 7 Timestamp ts = new Timestamp(date.getTime()); 8 System.out.println(ts); 9 } 10 11 } 12 執行結果 13 2019-04-04 13:11:11.761
java.text.SimpleDateFormat
年月日格式
日期和時間模式 | 結果 |
---|---|
"yyyy.MM.dd G 'at' HH:mm:ss z" |
2001.07.04 AD at 12:08:56 PDT |
"EEE, MMM d, ''yy" |
Wed, Jul 4, '01 |
"h:mm a" |
12:08 PM |
"hh 'o''clock' a, zzzz" |
12 o'clock PM, Pacific Daylight Time |
"K:mm a, z" |
0:08 PM, PDT |
"yyyyy.MMMMM.dd GGG hh:mm aaa" |
02001.July.04 AD 12:08 PM |
"EEE, d MMM yyyy HH:mm:ss Z" |
Wed, 4 Jul 2001 12:08:56 -0700 |
"yyMMddHHmmssZ" |
010704120856-0700 |
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" |
2001-07-04T12:08:56.235-0700 |
import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; public class DateTest { public static void main(String[] args) { Date date = new Date(); DateFormat format = new SimpleDateFormat("yyy年MM月dd日 HH.mm.ss"); System.out.println(format.format(date)); } } 執行結果: 2019年04月04日 13.19.38
java.util.Calendar
1 import java.util.Calendar; 2 3 public class DateTest { 4 public static void main(String[] args) { 5 // Date date = new Date(); 6 // DateFormat format = new SimpleDateFormat("yyy年MM月dd日 HH.mm.ss"); 7 // System.out.println(format.format(date)); 8 Calendar cal = Calendar.getInstance(); 9 System.out.println(cal); 10 } 11 } 12 執行結果 13 java.util.GregorianCalendar[time=1554355353479,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2019,MONTH=3,WEEK_OF_YEAR=14,WEEK_OF_MONTH=1,DAY_OF_MONTH=4,DAY_OF_YEAR=94,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=1,HOUR_OF_DAY=13,MINUTE=22,SECOND=33,MILLISECOND=479,ZONE_OFFSET=28800000,DST_OFFSET=0]
import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateTest { public static void main(String[] args) { DateFormat format = new SimpleDateFormat("yyy年MM月dd日 HH.mm.ss"); Calendar cal = Calendar.getInstance(); // Date date = new Date(); String s = format.format(cal.getTime()); System.out.println(s); } } 執行結果: 2019年04月04日 13.28.09
Calendar的set 和add方法區別
1 import java.text.DateFormat; 2 import java.text.SimpleDateFormat; 3 import java.util.Calendar; 4 5 public class TestDemoCal { 6 static void time(int year,int month,int day) { 7 //輸出5月32號 沒有32號,所以輸出1號 8 Calendar cal = Calendar.getInstance(); 9 // 因為月份是從0開始的,set是單純的設定日期,如果設定的日期不存在的話,他會向下移動。 10 cal.set(year, month, day); 11 DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 12 System.out.println(df.format(cal.getTime())); //格式化日期 13 } 14 public static void main(String[] args) { 15 16 time(2019,4,32); 17 } 18 19 } 20 //執行結果 21 //2019-06-01
1 import java.text.DateFormat; 2 import java.text.SimpleDateFormat; 3 import java.util.Calendar; 4 5 public class TestDemoCal { 6 static void time(int field ,int amount) { 7 //輸出5月32號 五月三十二號離四月五號有57天 8 Calendar cal = Calendar.getInstance(); 9 // add它移動的是日期的偏移量。 10 cal.add(field, amount); 11 DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 12 System.out.println(df.format(cal.getTime())); //格式化日期 13 } 14 public static void main(String[] args) { 15 16 time(Calendar.DAY_OF_MONTH,57); 17 } 18 19 } 20 //執行結果 21 //2019-06-01
總結:想要更改輸出的日期,先在Calendar的實例上調用add或者set方法改變日期,然后格式化輸出cal.getTime(意思是獲取當前毫秒數,類型是Date類型),想要單獨獲取年月日可以調用get方法,例如:cal.get(Calendar.Year);