Java SE日期相关API(before Java8)
CAMELLIA!!! note 目录
Java 8 之前的日期和时间 API
在 Java 中,处理日期和时间的 API 分为两个主要的类别:Java 8 之前的 API 和 Java 8 及之后引入的新 API。以下是详细介绍这些 API 及其使用方法。
1.1 java.util.Date
- 用于表示特定的时间,精度为毫秒。
- 常用方法:
Date()
: 创建一个表示当前时间的 Date
对象。
Date(long date)
: 创建一个表示从1970年1月1日00:00:00 GMT 开始的特定毫秒数的 Date
对象。
getTime()
: 返回自1970年1月1日00:00:00 GMT以来的毫秒数。
setTime(long time)
: 设置时间。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| @Test public void testDateConstructor(){ Date date = new Date(); System.out.println(date); Date date1 = new Date(1000); System.out.println(date1); Date date2 = new Date(System.currentTimeMillis()-1000*60*10); System.out.println(date2); }
|
1.2 java.text.SimpleDateFormat
- 用于格式化和解析日期。
- 常用方法:
format(Date date)
: 将日期格式化为字符串。
parse(String source)
: 将字符串解析为日期。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
@Test public void testDateormat() throws ParseException { Date date = new Date(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
String s = format.format(date); System.out.println(s);
String strDate = "2008-08-08 08:08:08 888";
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
Date date1 = sdf2.parse(strDate);
System.out.println(date1); }
|
1.3 java.util.Calendar
getInstance()
: 获取一个 Calendar
对象并初始化为当前日期和时间。
1 2 3 4 5 6
| @Test public void testCalendar(){ Calendar instance = Calendar.getInstance(); System.out.println(instance); }
|
get(int field)
: 返回给定日历字段的值。
1 2 3 4 5 6 7 8 9
| @Test public void testCalendar(){ Calendar instance = Calendar.getInstance(); int year = instance.get(Calendar.YEAR); System.out.println(year); }
|
set(int field, int value)
: 设置给定日历字段的值。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| @Test public void testCalendarSet() throws ParseException { Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, 2008); System.out.println(cal.get(Calendar.YEAR) + "年" + (cal.get(Calendar.MONTH) + 1) + "月" + cal.get(Calendar.DAY_OF_MONTH) + "日"); cal.set(2008, Calendar.AUGUST,8,8,8,8); System.out.println(cal.get(Calendar.YEAR) + "年" + (cal.get(Calendar.MONTH) + 1) + "月" + cal.get(Calendar.DAY_OF_MONTH) + "日"); }
|
add(int field, int amount)
: 在给定的日历字段中添加或减去指定的时间量。
1 2 3 4 5 6
| @Test public void testCalendarAdd(){ Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.YEAR,-2); System.out.println(calendar.get(Calendar.YEAR)); }
|
setTime(new Date())
:通常用于将日历对象设置为当前时间。
1 2 3 4 5 6 7 8 9
| @Test public void testCalendarSetTime() throws ParseException { String strDate="2020-07-07 09:00:00"; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date parse = format.parse(strDate); Calendar calendar = Calendar.getInstance(); calendar.setTime(parse); System.out.println(calendar.get(Calendar.YEAR)+"/"+(calendar.get(Calendar.MONTH)+1)+"/"+calendar.get(Calendar.DAY_OF_MONTH)); }
|
注意:Calendar 类中的月份是从 0 开始的。
getTime()
:是 Calendar 类的一个方法,用于返回一个Date
对象,该对象表示此Calendar
当前持有的时间值。
1 2 3 4 5 6 7 8
| @Test public void testCalendarGetTime() throws ParseException { Calendar calendar = Calendar.getInstance(); Date date = calendar.getTime(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:s"); String formatted = format.format(date); System.out.println(formatted); }
|