1. 程式人生 > >Java筆記丨30 日期類

Java筆記丨30 日期類

日期類

• Calendar

 得到一個例項 Calendar.getInstance() //Locale.ZH

 .get(DAY_OF_MONTH) .getDisplayName(DAY_OF_WEEK)

.set .add(HOUR,1) .roll(MONTH, 5),

 .setTime(date), .getTime()

• Date

 new Date(), new Date(System.currentTimeMillis())

.setTime(long), .getTime()

• SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”)

.format, .parse

 

例 CalendarDate.java

import java.util.Calendar;

import java.util.Date;

import java.text.SimpleDateFormat;

import java.util.Locale;

import static java.util.Calendar.*;



class CalendarDate 

{

public static void main(String[] args) throws java.text.ParseException

{

Calendar calendar = Calendar.getInstance();//得到一個例項

calendar.roll( MONTH, 1);//把月份加1

System.out.println(calendar.get(MONTH)+"月" + calendar.get (DAY_OF_MONTH ) + "日");//得到月份和日期



Date date = new Date();

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA);

System.out.println( formatter.format(date ));



date = new SimpleDateFormat("yyyy-MM-dd").parse( "2013-4-23" );//用parse解析得到一個時間

calendar.setTime( date );

System.out.println( calendar.getDisplayName(DAY_OF_WEEK, LONG, Locale.CHINA) );

}

}

執行結果:

0月27日

2018-12-27 19:32:04

星期二

 

Java8中的time api

• java.time.*

• java.time.format.*

• 主要的類

 Instant 時刻 Clock 時區 Duration 時間段

 常用的類 LocalDateTime LocalDate LocalTime

• .of .parse .format .plus .minus

 DateTimeFormatter

 

 CalendarDate8.java

import java.time.*;

import java.time.format.*;



class CalendarDate8{

public static void main(String[] args) throws java.text.ParseException

{

//使用預設時區時鐘瞬時時間建立 Clock.systemDefaultZone() -->即相對於 ZoneId.systemDefault()預設時區  

        LocalDateTime now = LocalDateTime.now();

        System.out.println(now);



//自定義時區  

        LocalDateTime now2 = LocalDateTime.now(ZoneId.of("Europe/Paris"));

        System.out.println(now2);//會以相應的時區顯示日期  



//構造一個物件  

        LocalDateTime d1 = LocalDateTime.of(2013, 12, 31, 23, 59, 59);



//解析String--->LocalDateTime  

        LocalDateTime d4 = LocalDateTime.parse("2013-12-31T23:59:59");

        System.out.println(d4);



//使用DateTimeFormatter API 解析 和 格式化  

        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");

        LocalDateTime d6 = LocalDateTime.parse("2013/12/31 23:59:59", formatter);

        System.out.println(formatter.format(d6));



//時間獲取的一部分

        System.out.println(d6.getYear());

        System.out.println(d6.getMonth()); //這不是整數,而是列舉

        System.out.println(d6.getDayOfYear());

        System.out.println(d6.getDayOfMonth());

        System.out.println(d6.getDayOfWeek());

        System.out.println(d6.getHour());

        System.out.println(d6.getMinute());

        System.out.println(d6.getSecond());

        System.out.println(d6.getNano()); //納秒



//時間增減  

        LocalDateTime d7 = d6.minusDays(1);

        LocalDateTime d8 = d6.plusHours(1).plusMinutes(30);

System.out.println(d7);

System.out.println(d8);

}

}