Java 中的日期和时间操作

如何取得年 月日、小时分钟秒?
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 等类,这些的类的设计都使用了不变模式,因
此是线程安全的设计。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值