有几种方式可以导入一个时间对象,但大多都可以通过SimpleDateFormat类转格式化为一个自定义的格式
使用前先导入SimpleDateFormat类,同时一般会创建一个名为df的对象,使用类似于"yyyy-MM-dd HH:mm:ss"(年-月-日 时:分:秒 可自由修改顺序和分隔符)格式的参数new出来。
import java.text.SimpleDateFormat;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
接下来即可以任意方式导入时间对象
1、通过System类中的currentTimeMillis方法来获取时间
直接调用System.currentTimeMillis()方法,得到的时间对象为从1970年1月1日起至今的秒数
栗子:
System.out.println(System.currentTimeMillis());
System.out.println(df.format(System.currentTimeMillis()));
结果为:
1549853930927
2019-02-11 10:58:50
2、通过Date类获取时间
先导入java.util.Date,再通过new Date()获取时间对象
栗子:
import java.util.Date;
Date date = new Date();
System.out.println(date);
System.out.println(df.format(date));
结果为:
Mon Feb 11 14:43:52 CST 2019
2019-02-11 14:43:52
3、通过Calendar类来获取当前时间
先导入java.util.Calendar
再获取一个实例得到日历类的对象,可以从这个对象中分别得到年月日等单独参数,但不能通过SimpleDateFormat格式化
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH)+1;//得到的月份基0
int date = c.get(Calendar.DATE);
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);
System.out.println(year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second);
System.out.println(c);
结果为:
2019-2-11 15:6:16
java.util.GregorianCalendar[time=1549868776281,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=1,WEEK_OF_YEAR=7,WEEK_OF_MONTH=3,DAY_OF_MONTH=11,DAY_OF_YEAR=42,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=3,HOUR_OF_DAY=15,MINUTE=6,SECOND=16,MILLISECOND=281,ZONE_OFFSET=28800000,DST_OFFSET=0]