java.time中日期时间的创建、增减、修改、查询、格式化、解析

Java用线程安全的java.time代替了原来线程不安全的Date和Calendar。

通过查阅资料,学习了新增的time的一些基本使用方法。

打开任意分割线内的代码块注释,都可以直接运行。

package com.my.timetest;

import java.time.DayOfWeek;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.Month;
import java.time.MonthDay;
import java.time.Period;
import java.time.Year;
import java.time.YearMonth;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.time.temporal.ChronoField;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalAdjusters;
import java.util.Iterator;
import java.util.Set;

/**
 * 
 * @author Zhang
 * 
 * 包括java.time中日期时间的创建、增减、修改、查询、格式化、解析
 * 
 */
public class TimeTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

//		//使用 now 方法创建 Instant的实例对象
//		Instant mInstantNow = Instant.now();
//		//使用 now 方法创建 LocalDate的实例对象
//		LocalDate mLocalDateNow = LocalDate.now();
//		//使用 now 方法创建 LocalTime的实例对象
//		LocalTime mLocalTimeNow = LocalTime.now();
//		//使用 now 方法创建 LocalDateTime的实例对象
//		LocalDateTime mLocalDateTimeNow = LocalDateTime.now();
//		//使用 now 方法创建 ZonedDateTime的实例对象
//		ZonedDateTime mZonedDateTimeNow = ZonedDateTime.now();
//		
//		//祖鲁时间(格林威治时间/国际标准时间) Instant:2022-08-14T10:37:28.878641900Z
//		System.out.println("Instant: " + mInstantNow);
//		//年-月-日 yyyy-mm-dd LocalDate:2022-08-14
//		System.out.println("LocalDate: " + mLocalDateNow);
//		//时:分:秒 HH:mm:ss LocalTime:18:37:28.905570800
//		System.out.println("LocalTime: " + mLocalTimeNow);
//		//年-月-日T时:分:秒 LocalDateTime:2022-08-14T18:37:28.905570800
//		System.out.println("LocalDateTime: " + mLocalDateTimeNow);
//		//年-月-日T时:分:秒+时区 ZonedDateTime:2022-08-14T18:37:28.906567200+08:00[Asia/Shanghai]
//		System.out.println("ZonedDateTime: " + mZonedDateTimeNow);
		
//===============================================================================================
		
//		//使用 now 方法创建 Year类的实例对象
//		Year mYear = Year.now();
//		//使用 now 方法创建 YearMonth类的实例对象
//		YearMonth mYearMonth = YearMonth.now();
//		//使用 now 方法创建 MonthDay类的实例对象
//		MonthDay mMonthDay = MonthDay.now();
//		
//		//Year:2022
//		System.out.println("Year: " + mYear);
//		//YearMonth:2022-08
//		System.out.println("YearMonth: " + mYearMonth);
//		//MonthDay:--08-14
//		System.out.println("MonthDay: " + mMonthDay);
		
//===============================================================================================
		
//		//初始化2022年8月8日的LocalDate对象
//		LocalDate mLocalDate = LocalDate.of(2022, Month.AUGUST, 8);
//		//LocalDate: 2022-08-08
//		System.out.println("LocalDate: " + mLocalDate);
//		
//		/*
//		 * 初始化晚上8点0分0秒的 LocalDate对象 -> 如果是晚上需要加上12
//		 * LocalTime.of方法的重载形式有以下几种,可以根据实践情况自行使用:
//		 * LocalTime.of(int hour,int minute) -> 根据小时/分钟生成对象
//		 * LocalTime.of(int hour,int minute,int second) -> 根据小时/分钟/秒生成对象
//		 * LocalTime.of(int hour,int minute,int second,int nanoOfSecond) -> 根据小时/分钟/秒/毫秒/纳秒生成对象
//		 */
//		LocalTime mLocalTime = LocalTime.of(20, 0);
//		//LocalTime: 20:00  若尾秒为0则省略
//		System.out.println("LocalTime: " + mLocalTime);
//		
//		/*
//		 * 初始化2022年8月8日下午8点0分的LocalDateTime对象。
//		 * LocalDateTime.of方法的重载形式有以下几种:
//		 * LocalDateTime.of(int year,int month,int dayOfMonth,int hour,int minute) -> 根据年/月/日/时/分生成对象
//		 * LocalDateTime.of(int year,int month,int dayOfMonth,int hour,int minute,int second,int nanoOfSencond)
//		 * -> 根据年/月/日/时/分/秒/毫秒/纳秒生成对象
//		 */
//		LocalDateTime mLocalDateTime = LocalDateTime.of(2022, Month.AUGUST, 8, 8, 0);
//		//LocalDateTime: 2022-08-08T08:00
//		System.out.println("LocalDateTime: " + mLocalDateTime);
//		
//		/*
//		 * LocalDateTime的of方法的特殊使用:
//		 * LocalDateTime.of(LocalDate localDate,LocalTime localTime);
//		 */
//		LocalDateTime mLocalDateTimeOf = LocalDateTime.of(mLocalDate, mLocalTime);
//		//LocalDateTime: 2022-08-08T20:00
//		System.out.println("LocalDateTime2: " + mLocalDateTimeOf);
		
//===============================================================================================
		
//		//获取所有时区信息
//		Set<String> availableZoneIds = ZoneId.getAvailableZoneIds();
//		//输出所有时区,Europe/Monaco、America/Los_Angeles等等
//		for (String availableZoneId : availableZoneIds) {
//			System.out.println(availableZoneId);
//		}
//		//获取当前系统默认的时区
//		ZoneId zoneId = ZoneId.systemDefault();
//		//系统默认时区:Asia/Shanghai
//		System.out.println("系统默认时区:" + zoneId);
		
//===============================================================================================
		
//		/*
//		 * 封装LocalDateTime并添加时区
//		 */
//		//1、封装LocalDateTime对象,参数自定义:2022年11月11日 8点54分38秒
//		LocalDateTime mLocalDateTime = LocalDateTime.of(2022, Month.NOVEMBER, 11, 8, 54, 38);
//		//2、LocalDateTime对象现在只是封装了时间,并没有时区信息,添加时区信息用atZone()方法
//		ZonedDat
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值