1. 程式人生 > 其它 >常用日期操作

常用日期操作

技術標籤:JDKjava

最近常用到日期,整理一波
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));

    }
}