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);