常用日期操作
阿新 • • 發佈:2021-01-07
最近常用到日期,整理一波
JDK8
JDK8 的日期時間類:LocalDateTime LocalDate LocalTime
DateTimeFormatter TemporalAdjusters
import java.time.DayOfWeek;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
public class JDK8DateTest {
public static void main(String[] args) {
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println("localDateTime:"+localDateTime);
LocalDateTime localDateTime1 = LocalDateTime.parse("2021-01-06 10:34:14",
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss" ));
System.out.println("2021-01-06 10:34:14 parse :"+localDateTime1.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
LocalDateTime localDateTime2 = localDateTime.plusDays(1);
System.out.println("加一天 :"+localDateTime2.format(DateTimeFormatter.ofPattern ("yyyy-MM-dd")));
System.out.println("本月第幾天 :"+ localDateTime.getDayOfMonth());
System.out.println("本月最後一天 :"+ localDateTime1.with(TemporalAdjusters.lastDayOfMonth())); // 2014-12-31
System.out.println("本月最後一個週一:"+ localDateTime1.with(TemporalAdjusters.lastInMonth(DayOfWeek.MONDAY))); // 2014-12-31
System.out.println(localDateTime1.isBefore(localDateTime1.with(TemporalAdjusters.lastInMonth(DayOfWeek.MONDAY))));
}
}
非JDK8
非jdk8 的主要用到Date, DateFormat, Calendar
DateFormat 可用於格式轉換,常用的也就是String ,long ,Date型
Calendar 可用於一些計算,也提供了大量的靜態型別供使用
程式碼:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateTest {
public static void main(String[] args) throws ParseException {
/** 1 時間格式轉換*/
Date today = new Date();
// 時間轉String:
String p1 = "yyyyMMdd"; // 大寫MM 表示Month 小寫是minute
String p3 = "yyyy-MM-dd HH:mm:ss";
String p4 = "MM";
SimpleDateFormat dateFormat = new SimpleDateFormat(p3);
String day1 = dateFormat.format(today);
System.out.println(day1);
// String 轉 date
String date = "2021-01-06 10:34:14";
Date date1 = dateFormat.parse(date); // Calendar
System.out.println(dateFormat.format(date1));
System.out.println(date1);
// long型轉換
Long time = date1.getTime();
System.out.println("Long-->"+time);
System.out.println(new Date(time));
/** 2 周 獲取日期是周幾 */
Calendar calendar = Calendar.getInstance();
calendar.setTime(date1);
System.out.println("周幾--》"+(calendar.get(Calendar.DAY_OF_WEEK)-1)) ;
System.out.println("第幾周--》"+(calendar.get(Calendar.WEEK_OF_YEAR)-1)) ;
System.out.println("第幾月--》"+(calendar.get(Calendar.MONTH)+1)) ;
/** 3 時間計算 */
calendar.add(Calendar.MONTH,1);
System.out.println("時間計算-->"+dateFormat.format(calendar.getTime()));
calendar.add(Calendar.DATE,-7);
System.out.println("時間計算-->"+dateFormat.format(calendar.getTime()));
/** 4 是否為月最後一天 */
System.out.println("最後一天--"+ (calendar.get(Calendar.DAY_OF_MONTH) == calendar.getActualMaximum(Calendar.DAY_OF_MONTH)));
System.out.println("最後一天--"+ (calendar.get(Calendar.DAY_OF_MONTH) == 1));
}
}