欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java 中的日期和时间操作

程序员文章站 2024-01-22 19:43:46
...

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

Calendar cal = Calendar.getInstance();
 System.out.println(cal.get(Calendar.YEAR));//获取年
 System.out.println(cal.get(Calendar.MONTH)); //获取月  0 - 11
 System.out.println(cal.get(Calendar.DATE));//获取第几天
 System.out.println(cal.get(Calendar.HOUR_OF_DAY));//小时
 System.out.println(cal.get(Calendar.MINUTE));//分钟
 System.out.println(cal.get(Calendar.SECOND));//秒
 // Java 8
 LocalDateTime dt = LocalDateTime.now();
 System.out.println(dt.getYear());
System.out.println(dt.getMonthValue()); // 1 - 12
 System.out.println(dt.getDayOfMonth());
 System.out.println(dt.getHour());
 System.out.println(dt.getMinute());
 System.out.println(dt.getSecond());

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

System.out.println( Calendar.getInstance().getTimeInMillis()); ; //第一种方式
System.out.println(System.currentTimeMillis()); ; //第二种方式
		  // Java 8
System.out.println(Clock.systemDefaultZone().millis()); ;

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

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//获取当前月第一天:
 Calendar c = Calendar.getInstance();
 c.add(Calendar.MONTH, 0);
 c.set(Calendar.DAY_OF_MONTH,1);//设置为 1 号,当前日期既为本月第一天
String first = format.format(c.getTime());
 System.out.println("===============first:"+first);

 //获取当前月最后一天
 Calendar ca = Calendar.getInstance();
 ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
 String last = format.format(ca.getTime());
 System.out.println("===============last:"+last);

 //Java 8
 LocalDate today = LocalDate.now();
 //本月的第一天
 LocalDate firstday = LocalDate.of(today.getYear(),today.getMonth(),1);
 //本月的最后一天
 LocalDate lastDay =today.with(TemporalAdjusters.lastDayOfMonth());
 System.out.println("本月的第一天"+firstday);
 System.out.println("本月的最后一天"+lastDay);

如何格式化日期 ?

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

 //  如何格式化日期 ?
 SimpleDateFormat oldFormatter = new SimpleDateFormat("yyyy/MM/dd");
  Date date1 = new Date();
  System.out.println(oldFormatter.format(date1));

  // Java 8
  DateTimeFormatter newFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
  LocalDate date2 = LocalDate.now();
  System.out.println(date2.format(newFormatter));

打印昨天的当前时刻?

 //打印昨天的当前时刻?
Calendar cal = Calendar.getInstance();
 cal.add(Calendar.DATE, -1);
 System.out.println(cal.getTime());
//java8
LocalDateTime today = LocalDateTime.now();
 LocalDateTime yesterday = today.minusDays(1);
System.out.println(yesterday);

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

相关标签: java