本文共 3865 字,大约阅读时间需要 12 分钟。
“时间如流水,一去不复返”,时间是一维的。所以,我们需要一把刻度尺来表达和度量时间。在计算机世界,我们把 1970 年 1 月 1 日 00:00:00 定为基准时间,每个度量单位是毫秒(1 秒的千分之一)
我们用 long 类型的变量来表示时间,从基准时间往前几亿年,往后几亿年都能表示。如果想获得现在时刻的“时刻数值”,可以使用:long now = System.currentTimeMillis();
import java.util.Date;public class DateTest03 { public static void main(String[] args) { long nowNum = System.currentTimeMillis(); //获取当前时间戳(毫秒) System.out.println(nowNum); Date nowTime = new Date(); //获取当前时间 System.out.println(nowTime); System.out.println(nowTime.getTime());; //获取当前时间戳(毫秒) }}
import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class DateTest04 { public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String nowTime = sdf.format(new Date()); //获取当前时间格式化字符串 System.out.println(nowTime); try { Date time = sdf.parse("2020-06-20 23:10:15"); //将时间字符串格式化为Date对象 System.out.println(time); } catch (ParseException e) { e.printStackTrace(); } }}
import java.text.SimpleDateFormat;import java.util.Date;public class DateTest05 { public static void main(String[] args) { SimpleDateFormat s1 = new SimpleDateFormat("D"); String daytime = s1.format(new Date()); System.out.println(daytime); }}
Calendar 类是一个抽象类,为我们提供了关于日期计算的相关功能,比如:年、月、日、时、分、秒的展示和计算。
GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统。菜鸟雷区注意月份的表示,一月是 0,二月是 1,以此类推,12 月是 11。 因为大多数人习惯于使用单词而不是使用数字来表示月份,这样程序也许更易读,父类 Calendar 使用常量来表示月份:JANUARY、FEBRUARY 等等。
import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;public class DateTest06 { public static void main(String[] args) { //获取日期 GregorianCalendar calendar = new GregorianCalendar(2021, 5,20,23,35,20); printCalendar(calendar); int year = calendar.get(Calendar.YEAR); System.out.println(year); int month = calendar.get(Calendar.MONTH); System.out.println(month); int day = calendar.get(Calendar.DAY_OF_MONTH); int day2 = calendar.get(Calendar.DATE); System.out.println(day); System.out.println(day2); int date = calendar.get(Calendar.DAY_OF_WEEK); //表示星期几:1-7,星期天是1 System.out.println(date); //设置日期 GregorianCalendar calendar2 = new GregorianCalendar(); calendar2.set(Calendar.YEAR, 2021); calendar2.set(Calendar.MONTH, Calendar.FEBRUARY); // 月份数:0-11 calendar2.set(Calendar.DATE, 3); calendar2.set(Calendar.HOUR_OF_DAY, 10); calendar2.set(Calendar.MINUTE, 20); calendar2.set(Calendar.SECOND, 23); printCalendar(calendar2); //日期计算 GregorianCalendar calendar3 = new GregorianCalendar(2021, 5,20,23,35,20); calendar3.add(Calendar.MONTH, -7); // 月份减 7 calendar3.add(Calendar.DATE, 7); // 增加 7 天 printCalendar(calendar3); // 日历对象和时间对象转化 GregorianCalendar calendar4 = new GregorianCalendar(); calendar4.setTime(new Date()); //获取当前日期 printCalendar(calendar4); } static void printCalendar(Calendar calendar) { int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH) + 1; int day = calendar.get(Calendar.DAY_OF_MONTH); int date = calendar.get(Calendar.DAY_OF_WEEK) - 1; // 星期几 String week = "" + ((date == 0) ? "日" : date); int hour = calendar.get(Calendar.HOUR); int minute = calendar.get(Calendar.MINUTE); int second = calendar.get(Calendar.SECOND); System.out.printf("%d年%d月%d日,星期%s %d:%d:%d\n", year, month, day, week, hour, minute, second); }}
转载地址:http://uqpli.baihongyu.com/