JAVA面试6-时间操作

格林威治 -英国的天文台 地球经度起点 世界时区起点
格林威治时间 1点 =北京时间 8点
时间戳=格林威治时间 1970-01-01 00:00:00 起到现在的总秒数

获取当前时间与时间戳

  Date date = new Date();
  System.out.println(date);  Sun Mar 01 16:12:20 CST 2020
  System.out.println(date.getTime()); 1583050340393
  System.out.println(System.currentTimeMillis()); 1583050340432
public Date() {
        this(System.currentTimeMillis());
    }
 public static native long currentTimeMillis();
  Calendar calendar=Calendar.getInstance();
  Date time=calendar.getTime();
  System.out.println(time);		Sun Mar 01 16:12:20 CST 2020
  System.out.println(time.getTime()); 1583050340433

LocalDateTime(时间日期) LocalDate(日期) LocalTime(时间)

  LocalDateTime localDateTime=LocalDateTime.now();
  System.out.println(localDateTime);  2020-03-01 T 16:53:47.507
   long milli = Instant.now().toEpochMilli();
   System.out.println(milli);1583053267617 毫秒
   long second = Instant.now().getEpochSecond();
   System.out.println(second);1583053267

时间格式化
M-月,D-年中天数,E-星期,H-24小时制,Z-时区,其他小写单词首字母

SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s=simpleDateFormat.format(new Date());
System.out.println(s); 2020-03-01 16:19:02
  System.out.println(new SimpleDateFormat("E").format(new Date())); Sun
  System.out.println(new SimpleDateFormat("Z").format(new Date())); +0800

SimpleDateFormat 非线程安全的 借助了calender

   calendar.setTime(date);

DateTimeFormatter 是线程安全的

DateTimeFormatter dateTimeFormatter=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String format = dateTimeFormatter.format(LocalDateTime.now());
System.out.println(format);2020-03-01 17:13:10
String format1 = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(format1);2020-03-01 17:17:39

时间转换
String日期->date

 SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 String s="2020-2-2 13:23:21";
 System.out.println(simpleDateFormat.parse(s));Sun Feb 02 13:23:21 CST 2020
String s="2020-02-02 13:23:21";
LocalDateTime localDateTime=LocalDateTime.parse(s, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(localDateTime);  2020-02-02T13:23:21

String时间戳->date

 SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 String s1="1583050340393";
 Timestamp timestamp=new Timestamp(Long.parseLong(s1));
 System.out.println(simpleDateFormat.format(timestamp)); 2020-03-01 16:12:20

获取昨天此刻时间

 Calendar calendar=Calendar.getInstance();
 calendar.add(Calendar.DATE,-1);
 System.out.println(calendar.getTime());Sat Feb 29 16:49:21 CST 2020
  LocalDateTime localDateTime=LocalDateTime.now().plusDays(-1);
  System.out.println(localDateTime); 2020-02-29T17:24:47.734

获取本月最后一天

Calendar calendar=Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
System.out.println(calendar.getTime());  Tue Mar 31 17:38:27 CST 2020
LocalDateTime localDateTime=LocalDateTime.now().with(TemporalAdjusters.lastDayOfMonth());
System.out.println(localDateTime);  2020-03-31T17:41:35.598

获取两个时间的日期间隔

 LocalDate localDate=LocalDate.now();
 LocalDate localDate1=localDate.plusDays(2);
 Period period=Period.between(localDate, localDate1);
 System.out.println(period.getDays()); 2

获取两个时间的间隔

 LocalTime localTime=LocalTime.now();
 LocalTime localTime1=localTime.plusSeconds(30);
 Duration duration=Duration.between(localTime, localTime1);
 System.out.println(duration.getSeconds()); 30

Date比较两个时间大小

  1. 换成时间戳相减
  2. Date 里的方法
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值