1-时间轴上瞬间的Date
public static void main(String[] args) {
long currentTimeMillis = System.currentTimeMillis();
Date d1 = new Date(currentTimeMillis);
Date d2 = new Date();
System.out.println(d1.getTime());
System.out.println(d2.getTime());
System.out.println(d2.toString());
}
1564451685153
1564451685153
Tue Jul 30 09:54:45 CST 2019
2-格式化日期时间的DateFormat
public static void main(String[] args) {
Date date = new Date();
System.out.println("---getDateInstance---");
System.out.println(DateFormat.getDateInstance(DateFormat.LONG).format(date));
System.out.println(DateFormat.getDateInstance(DateFormat.MEDIUM).format(date));
System.out.println(DateFormat.getDateInstance(DateFormat.SHORT).format(date));
System.out.println("---getTimeInstance---");
System.out.println(DateFormat.getTimeInstance(DateFormat.LONG).format(date));
System.out.println(DateFormat.getTimeInstance(DateFormat.MEDIUM).format(date));
System.out.println(DateFormat.getTimeInstance(DateFormat.SHORT).format(date));
System.out.println("---getDateTimeInstance---");
System.out.println(DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG).format(date));
System.out.println(DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM).format(date));
System.out.println(DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT).format(date));
}
---getDateInstance---
July 30, 2019
Jul 30, 2019
7/30/19
---getTimeInstance---
10:31:58 AM CST
10:31:58 AM
10:31 AM
---getDateTimeInstance---
July 30, 2019 10:31:58 AM CST
7/30/19 10:31:58 AM
7/30/19 10:31 AM
public static void main(String[] args) {
Date date = new Date();
DateFormat dateFormat = new SimpleDateFormat("EE-MM-dd-yyyy");
System.out.println(dateFormat.format(date));
}
Tue-07-30-2019
3-处理时间日期的Calendar
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
System.out.println(date.getTime());
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DATE);
System.out.println(year + "-" + month + "-" + day);
calendar.set(2000, 11, 11);
calendar.add(Calendar.YEAR, 1);
calendar.add(Calendar.MONTH, -2);
calendar.roll(Calendar.DATE, 1);
}
4-设定TimeZone
public static void main(String[] args) {
TimeZone timeZone = TimeZone.getDefault();
System.out.println(timeZone.getDisplayName());
System.out.println("时区ID-" + timeZone.getID());
System.out.println("夏令时数-" + timeZone.getDSTSavings());
System.out.println("偏移毫秒数-" + timeZone.getRawOffset());
String[] ids = TimeZone.getAvailableIDs();
for (String id : ids) {
System.out.println(id);
}
TimeZone sh = TimeZone.getTimeZone("Asia/Shanghai");
}
中国标准时间
时区ID-Asia/Shanghai
夏令时数-0
偏移毫秒数-28800000
5-新日期时间API
5.1 机器时间观点的API
Date date = new Date();
Instant instant = date.toInstant();
Date date1 = Date.from(instant);
Instant instant1 = instant.plusSeconds(1);
Instant instant2 = instant.plusMillis(1);
Instant instant3 = instant.plusNanos(1);
5.2 人类时间观点的API
LocalDateTime.now();
LocalDate.now();
LocalTime.now();
ZonedDateTime.now();
OffsetDateTime.now();
Year.now();
YearMonth.now();
Month.values();
MonthDay.now();
5.3 对时间的运算
public static void main(String[] args) {
System.out.println(LocalDate.of(1975, 5, 26)
.plusDays(5)
.plusMonths(6)
.plusWeeks(3)
.format(DateTimeFormatter.ofPattern("E MM/dd/yyyy")));
System.out.println(LocalDate.of(1975, 5, 26)
.plus(Period.ofDays(5))
.plus(Period.ofMonths(6))
.plus(Period.ofWeeks(3))
.format(DateTimeFormatter.ofPattern("E MM/dd/yyyy")));
System.out.println(LocalDate.of(1975, 5, 26)
.plus(5, ChronoUnit.DAYS)
.plus(6, ChronoUnit.MONTHS)
.plus(3, ChronoUnit.WEEKS)
.format(DateTimeFormatter.ofPattern("E MM/dd/yyyy")));
ChronoUnit.YEARS.between();
}