Java筆記丨30 日期類
阿新 • • 發佈:2018-12-28
日期類
• 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);
}
}