时间计算 LocalDateTime Calendar

Calendar设置时间

        Calendar calendar = Calendar.getInstance();
//        calendar.set(Calendar.YEAR, 2020);
//        calendar.set(Calendar.MONTH, 0);// 0表示1月
//        calendar.set(Calendar.DATE, 1);
//        calendar.set(Calendar.HOUR, -1);// -1 表示上午1点,1表示13点
//        calendar.set(Calendar.HOUR_OF_DAY, 1); // 1 就是 1点, 13表示13点
//        calendar.set(Calendar.MINUTE, 1);
//        calendar.set(Calendar.SECOND, 1);
        calendar.set(2020, 0, 1, 1, 1, 1);//2020-01-01 01:01:01
        
        Date time = calendar.getTime();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String format1 = format.format(time);
        System.out.println(format1);

Calendar计算时间

		Calendar calendar = Calendar.getInstance();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date parse = format.parse("2021-02-02 02:02:02");
        calendar.setTime(parse);
        calendar.add(Calendar.YEAR,-1);
        calendar.add(Calendar.MONTH,-1);
        calendar.add(Calendar.DATE,-1);
        calendar.add(Calendar.HOUR,-1);
        calendar.add(Calendar.MINUTE,-1);
        calendar.add(Calendar.SECOND,-1);


        Date time = calendar.getTime();
        String format1 = format.format(time);
        System.out.println(format1);
        // 2020-01-01 01:01:01

LocalDateTime

		// 每次操作都是一个新的对象,所以必须用对象去接
   		LocalDateTime  localDateTime = LocalDateTime.of(2021,02,02,02,02,02);
   		// minusYears减1年,plusYears加一年
        localDateTime = localDateTime.minusYears(1); 
        localDateTime =localDateTime.minusMonths(1);
        localDateTime =localDateTime.minusDays(1);
        localDateTime =localDateTime.minusHours(1);
        localDateTime =localDateTime.minusMinutes(1);
        localDateTime = localDateTime.minusSeconds(1);
        String s = localDateTime.toString();
        System.out.println(s);

时区、冬令、夏令

		"Asia/Shanghai":中国标准时间 (北京)
		"Asia/Hong_Kong":香港时间 (香港)
		"Asia/Taipei":台北时间 (台北)
		"Asia/Seoul":首尔
		"Asia/Tokyo":日本时间 (东京)
		"America/New_York":美国东部时间 (纽约)
		"America/Denver":美国山区时间 (丹佛)
		"America/Costa_Rica":美国中部时间 (哥斯达黎加)
		"America/Chicago":美国中部时间 (芝加哥)
		"America/Mexico_City":美国中部时间 (墨西哥城)
		"America/Regina":美国中部时间 (里贾纳) 
		"America/Los_Angeles":美国太平洋时间 (洛杉矶)
		"America/Tijuana":美国太平洋时间 (提华纳)  
		"America/Phoenix":美国山区时间 (凤凰城) 

         // 区别夏令、冬令的美国时间
        
        // 方式一
        TimeZone.setDefault(TimeZone.getTimeZone("America/Los_Angeles"));
        Date date = new Date();
        System.out.println(date);


        ZoneId zoneId = ZoneId.of("America/Los_Angeles");
        
        // 方式二
        LocalDateTime localDateTime = LocalDateTime.now(zoneId);
        System.out.println(localDateTime);
        
        // 方式三
        ZonedDateTime now = ZonedDateTime.now(zoneId);
        System.out.println(now);

        //获取时区计时规则
        ZoneRules rules = zoneId.getRules();
        //true表示处于夏令时,否则冬令时
        boolean result = rules.isDaylightSavings(ZonedDateTime.now(zoneId).toInstant());
        System.out.println(result);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值