Java 中的日期和时间

Posted 福建沙县小吃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 中的日期和时间相关的知识,希望对你有一定的参考价值。

如何取得年月日、小时分钟秒?

1.	public class DateTimeTest 
2.	public static void main(String[] args) 
3.	Calendar cal = Calendar.getInstance();
4.	System.out.println(cal.get(Calendar.YEAR));
5.	System.out.println(cal.get(Calendar.MONTH)); // 0 - 11
6.	System.out.println(cal.get(Calendar.DATE));
7.	System.out.println(cal.get(Calendar.HOUR_OF_DAY));
8.	System.out.println(cal.get(Calendar.MINUTE));
9.	System.out.println(cal.get(Calendar.SECOND));
10.	// Java 8
11.	LocalDateTime dt = LocalDateTime.now();
12.	System.out.println(dt.getYear());
13.	System.out.println(dt.getMonthValue()); // 1 - 12
14.	System.out.println(dt.getDayOfMonth());
15.	System.out.println(dt.getHour());
16.	System.out.println(dt.getMinute());
17.	System.out.println(dt.getSecond());
18. 
19. 

如何取得从 1970 年 1 月 1 日 0 时 0 分 0 秒到现在的毫秒数?

1.	Calendar.getInstance().getTimeInMillis(); //第一种方式
2.	System.currentTimeMillis(); //第二种方式
3.	// Java 8
4.	Clock.systemDefaultZone().millis();

如何取得某月的最后一天?

1.	//获取当前月第一天:
2.	Calendar c = Calendar.getInstance();
3.	c.add(Calendar.MONTH, 0);
4.	c.set(Calendar.DAY_OF_MONTH,1);//设置为 1 号,当前日期既为本月第一天
5.	String first = format.format(c.getTime());
6.	System.out.println("===============first:"+first); 7.
8.	//获取当前月最后一天
9.	Calendar ca = Calendar.getInstance();
10.	ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
11.	String last = format.format(ca.getTime());
12.	System.out.println("===============last:"+last); 13.
14.	//Java 8
15.	LocalDate today = LocalDate.now();
16.	//本月的第一天
17.	LocalDate firstday = LocalDate.of(today.getYear(),today.getMonth(),1);
18.	//本月的最后一天
19.	LocalDate lastDay =today.with(TemporalAdjusters.lastDayOfMonth());
20.	System.out.println("本月的第一天"+firstday);
21.	System.out.println("本月的最后一天"+lastDay);

如何格式化日期?

1)Java.text.DataFormat 的子类(如 SimpleDateFormat 类)中的 format(Date)方法可将日期格式化。2)Java 8 中可以用 java.time.format.DateTimeFormatter 来格式化时间日期,代码如下所示:

1.	import java.text.SimpleDateFormat;
2.	import java.time.LocalDate;
3.	import java.time.format.DateTimeFormatter;
4.	import java.util.Date;
5.	class DateFormatTest  6.
7.	public static void main(String[] args) 
8.	 SimpleDateFormat oldFormatter = new SimpleDateFormat("yyyy/MM/dd"); 9.		Date date1 = new Date();
10.	System.out.println(oldFormatter.format(date1));
11.
12.	  // Java 8
13.	DateTimeFormatter newFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd"); 14.	LocalDate date2 = LocalDate.now();
15.	System.out.println(date2.format(newFormatter));
16.	
17. 

补充:Java 的时间日期 API 一直以来都是被诟病的东西,为了解决这一问题,Java 8 中引入了新的时间日期 API, 其中包括 LocalDate、LocalTime、LocalDateTime、Clock、Instant 等类,这些的类的设计都使用了不变模式,因此是线程安全的设计。
打印昨天的当前时刻?

1.	import java.util.Calendar;
2.	class YesterdayCurrent 
3.	public static void main(String[] args)
4.	Calendar cal = Calendar.getInstance();
5.	cal.add(Calendar.DATE, -1);
6.	System.out.println(cal.getTime()); 7.	
. 
11.	//java-8
12.	import java.time.LocalDateTime;
13.	class YesterdayCurrent 
14.	public static void main(String[] args) 
15.	LocalDateTime today = LocalDateTime.now();
16.	LocalDateTime yesterday = today.minusDays(1);
17.	System.out.println(yesterday);
18.	
19. 

以上是关于Java 中的日期和时间的主要内容,如果未能解决你的问题,请参考以下文章

grafana:过去 24 小时 - 转移和 2 小时丢失

如何测试字符串是有效日期还是不使用时刻?

比较2个时刻日期字串的时间差:距离现在的时间距离(不同时间格式)

Java 中的日期和时间

java 日期比较(compareTo)

Java 中的日期和时间