题记:
Java的时间日期API一直以来都是被诟病的东西,为了解决这一问题,Java 8中引入了新的时间日期API,其中包括LocalDate、LocalTime、LocalDateTime、Clock、Instant等类,这些的类的设计都使用了不变模式,因此是线程安全的设计。
一、如下有详细的说明:
package com.gws;
import java.text.SimpleDateFormat;
import java.time.Clock;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
/**
* @author:wangdong
* @description:Java对日期和时间的处理
*/
public class DateTimeTest {
public static void main(String[] args) {
//一、获取当前年月日时分秒
//在Jdk8之前可以用Calendar对时间做处理
// 创建java.util.Calendar 实例,调用其get()方法传入不同的参数即可获得参数所对应的值
//实例化Calendar
Calendar calendar = Calendar.getInstance();
//获取年份
System.out.println(calendar.get(Calendar.YEAR));
//获取月份,注意这个方法Calendar.MONTH,获取的值是0-11
//例如我是4月19执行的值,输出是3
System.out.println(calendar.get(Calendar.MONTH));
//获取当月日期
System.out.println(calendar.get(Calendar.DATE));
//获取当天的值
//Field number for <code>get</code> and <code>set</code> indicating the
//hour of the day. <code>HOUR_OF_DAY</code> is used for the 24-hour clock.
//E.g., at 10:04:15.250 PM the <code>HOUR_OF_DAY</code> is 22
//pm下午十点就是对应22,我现在是在下午7点多执行的程序,输出的是19
System.out.println(calendar.get(Calendar.HOUR_OF_DAY));
//获取当前的分钟,当前58
System.out.println(calendar.get(Calendar.MINUTE));
//获取当前的秒
System.out.println(calendar.get(Calendar.SECOND));
//获取当前年月日时分秒
//在jdk8时候,引入了一个新的类,LocalDateTime
//例如获取当前的年月日时分秒
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDateTime.getYear());
//这个的月份是从1-12月份表示的
//获取的是英文
System.out.println(localDateTime.getMonth());
//获取的是中文
System.out.println(localDateTime.getMonthValue());
System.out.println(localDateTime.getDayOfMonth());
System.out.println(localDateTime.getHour());
System.out.println(localDateTime.getMinute());
System.out.println(localDateTime.getSecond());
//二、取得从1970年1月1日0时0分0秒到现在的毫秒数
//获取毫秒
System.out.println(Calendar.getInstance().getTimeInMillis());
System.out.println(System.currentTimeMillis());
//Jdk8,Clock获取毫秒
System.out.println(Clock.systemDefaultZone().millis());
//三、获取当月的最后一天
System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
//四、怎么格式化日期
//java.text.DataFormat 的子类(如SimpleDateFormat类)中的format(Date)方法可将日期格式化。
//Java 8中可以用java.time.format.DateTimeFormatter来格式化时间日期,代码如下所示。
//按照当前格式,打印当前日期,2018/04/19 20:17:08
SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY/MM/dd HH:MM:SS");
Date date = new Date();
System.out.println(dateFormat.format(date));
//在Jdk8中格式化时间操作
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("YYYY/MM/dd");
LocalDate localDate = LocalDate.now();
System.out.println(localDate.format(dateTimeFormatter));
//五、打印昨天的当前时刻
calendar.add(Calendar.DATE,-1);
System.out.println(calendar.getTime());
//通过jdk8的操作
LocalDateTime today = LocalDateTime.now();
LocalDateTime yesterday = today.minusDays(1);
System.out.println(yesterday);
}
}
二、输出的结果
2018
3
19
20
25
11
2018
APRIL
4
19
20
25
11
1524140711159
1524140711159
1524140711159
30
2018/04/19 20:04:168
2018/04/19
Wed Apr 18 20:25:11 CST 2018
2018-04-18T20:25:11.184
好了,很多东西需要自己去慢慢尝试!