码迷,mamicode.com
首页 > 编程语言 > 详细

Java8 時間API

时间:2019-09-15 19:23:38      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:red   lse   int   jdk   imp   second   day   ext   方法   

java.time 包是在JDK8新引入的,提供了用于日期、时间、实例和周期的主要API。

所有类都是不可变的、线程安全的。

import java.time.*;
import java.time.format.DateTimeFormatter;

public class DateTest {
	
	public static void main(String[] args) {
		
		LocalDate localDate = LocalDate.now();
		System.out.println("当前日期: " + localDate);
		
		//获取年、月、日
		System.out.println("年份: " + localDate.getYear());
		System.out.println("月份: " + localDate.getMonthValue());
		System.out.println("日期: " + localDate.getDayOfMonth());
		System.out.println(localDate.getYear() + "年第" + localDate.getDayOfYear() + "年");
		System.out.println("星期: " + localDate.getDayOfWeek());
		
		System.out.println("判斷當前年份是否是閏年:" + localDate.isLeapYear());
		
		//創建時間對象
		LocalDate lastTime = localDate.of(2008, 8, 8);
		System.out.println(lastTime);
		
		//LocalDate 轉 String
		DateTimeFormatter rule = DateTimeFormatter.ofPattern("yyyy-MM-dd");
		String timeStr = lastTime.format(rule);
		System.out.println(timeStr);
		
		//String 轉 LocalDate
		LocalDate lastTime1 = localDate.parse(timeStr);
		System.out.println(lastTime1);
		
		LocalDateTime now = LocalDateTime.now();
		System.out.println(now.getYear() + "年" 
						+ now.getMonthValue() + "月" 
						+ now.getDayOfMonth() + "日  時間:"
						+ now.getHour() +  ":"    //時
						+ now.getMinute() + ":"    //分
						+ now.getSecond() + ":"    //秒
						+ now.getNano());          //毫秒
		
		//增加年份 返回新的對象
		LocalDateTime nextYear = now.plusYears(1);
		System.out.println(nextYear);
		
		//增加月份 返回新的對象
		LocalDateTime nextMonth = nextYear.plusMonths(1);
		System.out.println(nextMonth);
		
		//增加天數 返回新的對象	
		LocalDateTime nextDay = nextMonth.plusDays(2);
		System.out.println(nextDay);
		
		//增加小時數 返回新的對象
		LocalDateTime nextHours = nextDay.plusHours(2);
		System.out.println(nextHours);
		
		//nextHours.plusMinutes(minutes)
		//nextHours.plusSeconds(seconds)
		//nextHours.plusNanos(nanos)
		//不一一演示
		
		//減去年份
		LocalDateTime preYear = nextHours.minusYears(1);
		System.out.println(preYear);
		
		//減去月份
		LocalDateTime preMonth = preYear.minusMonths(1);
		System.out.println(preMonth);
		
		//減去日期
		LocalDateTime preDay = preMonth.minusDays(2);
		System.out.println(preDay);
		
		//設置時間
		//設置年份
		LocalDateTime setYear = preDay.withYear(1997);
		System.out.println(setYear);
		
		//設置月份
		LocalDateTime setMonth = setYear.withMonth(5);
		System.out.println(setMonth);
		
		LocalDateTime dateTime = LocalDateTime.parse("2010-01-01T19:24:01.078");
		System.out.println("String 轉 LocalDateTime: " + dateTime);
		
		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
		System.out.println("LocalDateTime 轉 String: " + dateTime.format(formatter));
		
		//java.time.Duration 計算時間
		LocalDateTime start = LocalDateTime.of(1997, 7, 3, 1, 1);
		LocalDateTime end = LocalDateTime.of(2020, 1, 1, 1, 1);
		
		Duration result = Duration.between(start, end);
		System.out.println("距離天數: " + result.toDays()); //沒有距離年數的方法
		System.out.println("距離小時數: " + result.toHours());
		System.out.println("距離分鐘數: " + result.toMinutes());
		System.out.println("距離秒數: " + result.toMillis());  //秒
	}

}

  

Java8 時間API

标签:red   lse   int   jdk   imp   second   day   ext   方法   

原文地址:https://www.cnblogs.com/mxh-java/p/11523598.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!