LocalDateTime获取时间类(当前时间)


import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

public class Test5 {
	public static void main(String[] args) {
		System.err.println("============LocalDate================");
		//创建日期对象
		//根据当前操作系统的的日期创建对象
		LocalDate date =LocalDate.now();
		System.out.println(date);
		System.out.println("============================");
		//最小日期
		date =LocalDate.MIN;
		System.out.println(date);
		System.out.println("============================");
		//最大日期
		date =LocalDate.MAX;
		System.out.println(date);
		System.out.println("============================");
		//将yyyy-MM-dd格式字符串解析为日期对象
		//月和日小于10的,前面需要带0
		date =LocalDate.parse("2008-12-20");
		System.out.println(date);
		System.out.println("============================");
		//自己指定格式,将字符串解析为日期对象
		date=LocalDate.parse("2012/12/12",DateTimeFormatter.ofPattern("yyyy/MM/dd"));
		System.out.println(date);
		System.out.println("============================");
		//自己指定年月日
		date=LocalDate.of(2008, 8, 8);
		System.out.println(date);
		System.out.println("============================");
		
		System.out.println("============================");
		//日期对象主要方法
		date=LocalDate.now();
		//增加指定年份后日期
		date =date.plusYears(10);
		System.out.println(date);
		System.out.println("============================");
		//增加指定月份后日期
		date =date.plusMonths(1000);
		System.out.println(date);
		System.out.println("============================");
		//增加指定天数后的日期
		date= date.plusDays(100000);
		System.out.println(date);
		System.out.println("============================");
		增加指定星期后的日期
		date=date.plusWeeks(1000);
		System.out.println(date);
		System.out.println("============================");
		//增加指定天数后的日期
		
		//减少指定年份前的日期
		date=date.minusYears(10);
		System.out.println(date);
		System.out.println("============================");
		
		
		//获取年月日
		System.out.println("年:"+date.getYear());
		//使用1-12来表示1月份到12月份
		System.out.println("月:"+date.getMonthValue());
		System.out.println("日:"+date.getDayOfMonth());
		System.out.println("年中天数:"+date.getDayOfYear());
		//使用1-7来表示周一到周日
		System.out.println("星期:"+date.getDayOfWeek().getValue());
		
		
		System.err.println("============LocalTime================");
		//创建时间对象
		//根据当前操作系统的的时间创建对象
				LocalTime time =LocalTime.now();
				System.out.println(time);
				System.out.println("============================");
				//最小时间
				time =LocalTime.MIN;
				System.out.println(time);
				System.out.println("============================");
				//最大时间
				time =LocalTime.MAX;
				System.out.println(time);
				System.out.println("============================");
				//将HH:mm:ss格式字符串解析为时间对象
				//时分秒小于10的,前面需要带0
				time =LocalTime.parse("16:23:34");
				System.out.println(time);
				System.out.println("============================");
				//自己指定格式,将字符串解析为时间对象
				time=LocalTime.parse("12/12/12",DateTimeFormatter.ofPattern("HH/mm/ss"));
				System.out.println(time);
				System.out.println("============================");
				//自己指定时分秒
				time=LocalTime.of(17,10,9);
				System.out.println(time);
				System.out.println("============================");
				
				//主要方法
				time=LocalTime.now();
				//增加指定小时后时间
				time=time.plusHours(3);
				System.out.println(time);
				System.out.println("============================");
				//增加指定分钟后时间
				time=time.plusMinutes(3);
				System.out.println(time);
				System.out.println("============================");
				//增加指定秒后时间
				time=time.plusSeconds(3000);
				System.out.println(time);
				System.out.println("============================");
				//增加指定na秒后时间
				time=time.plusNanos(56787543212345789L);
				System.out.println(time);
				System.out.println("============================");
				
				//减少指定小时前的时间
				time =time.minusMinutes(2);
				System.out.println(time);
				
				
				//获取时间相关信息
				System.out.println("时:"+time.getHour());
				System.out.println("分:"+time.getMinute());
				System.out.println("秒:"+time.getSecond());
				System.out.println("na秒:"+time.getNano());
				
				System.err.println("============LocalDateTime================");
				//根据当前操作系统的的时间创建对象
				LocalDateTime datetime =LocalDateTime.now();
				System.out.println(datetime);
				System.out.println("============================");
				//最小时间
				datetime =LocalDateTime.MIN;
				System.out.println(datetime);
				System.out.println("============================");
				//最大时间
				datetime =LocalDateTime.MAX;
				System.out.println(datetime);
				System.out.println("============================");
				//4>将yyyy-MM-dd HH:mm:ss格式字符串解析为日期时间对象
				//时分秒小于10的,前面需要带上0
				datetime =LocalDateTime.parse("2008-12-20T16:23:34");
				System.out.println(datetime);
				System.out.println("============================");
				//5>自己指定格式,将字符串解析为日期时间对象
				datetime=LocalDateTime.parse("2012/12/12 12/12/12",
											DateTimeFormatter.ofPattern("yyyy/MM/dd HH/mm/ss"));
				System.out.println(datetime);
				System.out.println("============================");
				//6>自己指定年月日时分秒
				datetime=LocalDateTime.of(2003,10,9,18, 19, 18);
				System.out.println(datetime);
				System.out.println("============================");
				

				//主要方法
				datetime=LocalDateTime.now();
				//增加指定小时后时间
				datetime=datetime.plusHours(3);
				System.out.println(datetime);
				System.out.println("============================");
				//增加指定分钟后时间
				datetime=datetime.plusMinutes(3);
				System.out.println(datetime);
				System.out.println("============================");
				//增加指定秒后时间
				datetime=datetime.plusSeconds(3000);
				System.out.println(datetime);
				System.out.println("============================");
				//增加指定na秒后时间
				datetime=datetime.plusNanos(56787543212345789L);
				System.out.println(datetime);
				System.out.println("============================");
				
				//减少指定小时前的时间
				datetime =datetime.minusMinutes(2);
				System.out.println(datetime);
				
				
				//获取时间相关信息
				System.out.println("时:"+datetime.getHour());
				System.out.println("分:"+datetime.getMinute());
				System.out.println("秒:"+datetime.getSecond());
				System.out.println("na秒:"+datetime.getNano());
	    }
}

在java8以前,或许:

当你在做有关时间日期的操作时,你会想到用Date;
当你在做日期、月份、天数相加减时,你会想到用Calendar;
当你需要对时间日期进行格式化时,你会想到使用SimpleDateFormat或DateFormat下的其他子类;

但是,你必须知道,以上有关的时间日期操作对象,都是可变的、线程不安全的,同时,如果作为一个经常写过类似代码的人来说,尽管有相关对象提供某些操作,但并不能很快、很简单的就能得到最终想要的结果,如:要计算两个时间点之间相差的年、月、日、周、时、分、秒等,这些计算尽管原有API也能够实现,但原有API除了线程不安全之外,另外一个不足之处就是代码繁琐,性能低!

**为何我们总提多线程下,线程不安全?**对于初学者来说,可能觉得能够简单实现出功能就已经足够,但是真正的开发项目是不可能仅仅考虑功能的实现的,还要考虑项目的安全性、稳定性、高性能、高可用性等等!因此,作为java开发者,多线程的知识是必不可少的。而也正因为多线程,才会出现一大堆问题(简称线程安全性问题),作为开发者,就应该写出不仅能实现功能的代码,还要是线程安全的代码。那么,学习并熟悉掌握新的线程安全的API就显得非常重要了!

没错,java8出的新的时间日期API都是线程安全的,并且性能更好,代码更简洁!
新时间日期API常用、重要对象介绍

ZoneId: 时区ID,用来确定Instant和LocalDateTime互相转换的规则
Instant: 用来表示时间线上的一个点(瞬时)
LocalDate: 表示没有时区的日期, LocalDate是不可变并且线程安全的
LocalTime: 表示没有时区的时间, LocalTime是不可变并且线程安全的
LocalDateTime: 表示没有时区的日期时间, LocalDateTime是不可变并且线程安全的
Clock: 用于访问当前时刻、日期、时间,用到时区
Duration: 用秒和纳秒表示时间的数量(长短),用于计算两个日期的“时间”间隔
Period: 用于计算两个“日期”间隔
其中,LocalDate、LocalTime、LocalDateTime是新API里的基础对象,绝大多数操作都是围绕这几个对象来进行的,有必要搞清楚:
LocalDate : 只含年月日的日期对象
LocalTime :只含时分秒的时间对象
LocalDateTime : 同时含有年月日时分秒的日期对象
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在Java中,可以使用`LocalDateTime`获取当前的系统时间。示例代码如下: ```java import java.time.LocalDateTime; public class Main { public static void main(String[] args) { LocalDateTime now = LocalDateTime.now(); System.out.println("当前时间: " + now); } } ``` 输出结果似于:`当前时间: 2022-02-22T14:30:15.123456`,其中的数字表示当前年月日时分秒和毫秒数。 ### 回答2: LocalDateTimeJava 8中的一个,用于表示不带时区信息的日期与时间。可以通过LocalDateTime.now()方法获取当前系统的当前时间LocalDateTime位于java.time包中,可以使用以下代码获取当前系统的当前时间: ``` import java.time.LocalDateTime; public class Main { public static void main(String[] args) { LocalDateTime currentDateTime = LocalDateTime.now(); System.out.println("当前时间:" + currentDateTime); } } ``` 运行以上代码,将会输出当前系统的当前时间,例如:2021-09-10T15:30:00.123。 LocalDateTime的now()方法会返回一个表示系统当前时间LocalDateTime对象。这个对象包含了年、月、日、时、分、秒和毫秒等信息。时间格式采用ISO-8601标准,即yyyy-MM-dd'T'HH:mm:ss.SSS。 通过LocalDateTime这个,我们可以方便地获取、操作系统当前时间的各个部分。例如,通过currentDateTime.getYear()方法可以获取当前年份,currentDateTime.getMonthValue()方法可以获取当前月份,currentDateTime.getDayOfMonth()方法可以获取当前日期,以此推。 总之,使用LocalDateTime.now()方法可以方便地获取当前系统的当前时间,并通过LocalDateTime的其他方法获取更加详细和灵活的时间信息。 ### 回答3: LocalDateTimeJava日期时间API中的一个,用于表示不带时区的日期时间信息。要获取当前系统的当前时间,可以使用LocalDateTime的now()方法。 具体的代码如下: ``` import java.time.LocalDateTime; public class CurrentTimeExample { public static void main(String[] args) { LocalDateTime currentTime = LocalDateTime.now(); System.out.println("当前时间:" + currentTime); } } ``` 以上代码会在控制台输出当前系统的当前时间,格式为:年-月-日 时:分:秒。 LocalDateTime的now()方法会根据系统的默认时区返回当前的日期时间。如果需要获取特定时区的当前时间,可以使用带有ZoneId参数的now()方法。 例如,要获取纽约时区的当前时间,可以这样写: ``` import java.time.LocalDateTime; import java.time.ZoneId; public class CurrentTimeExample { public static void main(String[] args) { LocalDateTime currentTime = LocalDateTime.now(ZoneId.of("America/New_York")); System.out.println("当前纽约时间:" + currentTime); } } ``` 以上代码会输出当前纽约时区的当前时间。需要注意的是,ZoneId.of()方法要传入正确的时区ID才能获取到准确的时间信息。 总结:通过LocalDateTime的now()方法,可以方便地获取当前系统的当前时间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

God Zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值