Java日期和时间学习记录2

news2024/9/29 11:36:13

1、Java的LocalDate类当前时间往未来几天和过去时间几天

import java.time.LocalDate;

public class Main {
    public static void main(String[] args) {
        // 获取当前日期
        LocalDate currentDate = LocalDate.now();
        System.out.println("当前日期:" + currentDate);

        // 计算未来日期
        int daysToAdd = 3; // 要添加的天数
        LocalDate futureDate = currentDate.plusDays(daysToAdd);
        System.out.println("未来 " + daysToAdd + " 天的日期:" + futureDate);

        // 计算过去日期
        int daysToSubtract = 5; // 要减去的天数
        LocalDate pastDate = currentDate.minusDays(daysToSubtract);
        System.out.println("过去 " + daysToSubtract + " 天的日期:" + pastDate);
    }
}

2、Java的LocalDateTime类获取某个时间往未来几天和过去时间几天

import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;

public class Main {
    public static void main(String[] args) {
        // 获取指定时间
        // 年、月、日、小时、分钟和秒
        LocalDateTime specificDateTime = LocalDateTime.of(2023, 12, 15, 12, 12, 12);
        System.out.println("指定时间:" + (""+specificDateTime).replace("T"," "));


        // 计算未来日期
        long daysToAdd = 3; // 要添加的天数
        LocalDateTime futureDateTime = specificDateTime.plus(daysToAdd, ChronoUnit.DAYS);
        System.out.println("未来 " + daysToAdd + " 天的日期:" + futureDateTime.toLocalDate());

        // 计算过去日期
        long daysToSubtract = 5; // 要减去的天数
        LocalDateTime pastDateTime = specificDateTime.minus(daysToSubtract, ChronoUnit.DAYS);
        System.out.println("过去 " + daysToSubtract + " 天的日期:" + pastDateTime.toLocalDate());
    }
}

注意:在计算日期时,我们将LocalDateTime对象转换为LocalDate对象以仅保留日期部分。这是因为LocalDateTime包含日期和时间信息。

3、Java的Clander获取某个时间/当前时间往未来几天和过去时间几天


import java.util.Calendar;

public class Main {
    public static void main(String[] args) throws ParseException {
        // 获取当前时间
//        Calendar calendar = Calendar.getInstance();
//        System.out.println("当前时间:" + calendar.getTime());

        // 指定时间
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date parse = simpleDateFormat.parse("2023-12-12 12:12:12");
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(parse);
        System.out.println("指定时间:" + calendar.getTime());

        // 计算未来日期
        int daysToAdd = 3; // 要添加的天数
        calendar.add(Calendar.DAY_OF_MONTH, daysToAdd);
        System.out.println("未来 " + daysToAdd + " 天的日期:" + calendar.getTime());

        // 计算过去日期
        int daysToSubtract = 5; // 要减去的天数
        calendar.add(Calendar.DAY_OF_MONTH, -daysToSubtract);
        System.out.println("过去 " + daysToSubtract + " 天的日期:" + calendar.getTime());
    }
}

4、LocalDate和Date互转

import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;

public class Main {
    public static void main(String[] args) {
        // LocalDate 转 Date
        LocalDate localDate = LocalDate.now();
        Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
        System.out.println("LocalDate: " + localDate);
        System.out.println("Date: " + date);

        // Date 转 LocalDate
        Date now = new Date();
        LocalDate localDate1 = now.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
        System.out.println("Date: " + now);
        System.out.println("LocalDate: " + localDate1);
    }
}

注意:LocalDate表示日期,而Date表示时间戳。在进行转换时,需要考虑所涉及的时区。目前使用系统默认时区(ZoneId.systemDefault()),使用时可以根据需求使用其他时区

5、LocalDateTime和Date互转

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;

public class Main {
    public static void main(String[] args) {
        // LocalDateTime 转 Date
        LocalDateTime localDateTime = LocalDateTime.now();
        Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
        System.out.println("LocalDateTime: " + localDateTime);
        System.out.println("Date: " + date);

        // Date 转 LocalDateTime
        Date now = new Date();
        LocalDateTime localDateTime1 = LocalDateTime.ofInstant(now.toInstant(), ZoneId.systemDefault());
        System.out.println("Date: " + now);
        System.out.println("LocalDateTime: " + localDateTime1);
    }
}

注意:LocalDateTime表示日期和时间,而Date仅表示时间戳。在进行转换时,需要考虑所涉及的时区。目前使用系统默认时区(ZoneId.systemDefault()),使用时可以根据需求使用其他时区

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1409632.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go 定时器:如何避免潜在的内存泄漏陷阱

这篇文章将探讨的是 Go 中如何高效使用 timer,特别是与select 一起使用时,如何防止潜在的内存泄漏问题。 引出问题 先看一个例子,我们在 Go 中的 select 使用定时器,实现为消息监听加上超时能力。 核心代码,如下所示…

java安装,从java1.8升级到java11.0,java,javac,javaw,javaws,jdk,jre

最近在学习 PyFlink,需要安装Java11环境,但是本机已经安装了java1.8,在升级的过程中遇到了一些问题,在这里记录一下。 windows下安装JDK11 下载JDK11:https://www.oracle.com/java/technologies/downloads/#java11-w…

MyBatis入门基础篇

MyBatis基础篇 MyBatis是一款优秀的特久层框架,用于简化JDBC开发。其是Apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。由于MyBatis中的大部分API参数与数据库事务息息相…

详细介绍 Go 中如何实现 bitset

文章目录 bitset 结构元素位置代码实现构造函数BitSet 的方法基础方法containsclearadd 集合方法computeSize方法定义intersectuniondifference 遍历集合的元素总结 最近尝试在 B 站录些小视频,我的 B 站主页。录视频当是为了彻底搞懂某个知识点的最后一步吧&#x…

【C++】stack、queue的使用及模拟实现

目录 一、stack1.1 stack的使用1.2 stack的模拟实现 二、queue2.1 queue的使用2.2 queue的模拟实现 一、stack 1.1 stack的使用 stack是一种容器适配器,它的特点是后进先出,只能在容器的一端进行插入和删除操作。 stack的使用很简单,主要有…

代码随想录算法训练营31期day4,力扣24+19+02.07+142

24,动指针 class Solution { public:ListNode* swapPairs(ListNode* head) {//建立虚拟头结点auto dummynew ListNode(-1);dummy->nexthead;for(auto pdummy;p->next&&p->next->next;){auto ap->next;auto ba->next;p->nextb;a->n…

图像旋转角度计算并旋转

#!/usr/bin/python3 # -*- coding: utf-8 -*- import cv2 import numpy as np import timedef Rotate(img, angle0.0,fill0):"""旋转:param img:待旋转图像:param angle: 旋转角度:param fill:填充方式,默认0黑色填充:return: img: 旋转后…

【保驾护航】HarmonyOS应用开发者基础认证-题库

通过系统化的课程学习,熟练掌握DevEco Studio,ArkTS,ArkUI,预览器,模拟器,SDK等HarmonyOS应用开发的关键概念,具备基础的应用开发能力。 考试说明 1、考试需实名认证,请在考前于个…

林浩然的政治学奇幻漂流——幽默诙谐解读马基雅维利

林浩然的政治学奇幻漂流——幽默诙谐解读马基雅维利 Lin Haoran’s Whimsical Exploration of Machiavelli’s Political World 在一个阳光明媚的周末,我们的主人公林浩然同学决定穿越历史长河,踏上一场充满智识与笑声的探索之旅,目的地是文艺…

NineData和泽拓数据库产品Klustron完成产品兼容互认证

近日,云原生智能数据管理平台NineData和泽拓昆仑分布式数据库产品Klustron完成产品兼容互认证。经过严格的联合测试,双方软件完全相互兼容、功能完善、整体运行稳定且性能表现优异。 本次玖章算术与泽拓科技的携力合作,在双方共同的努力下&a…

nextjs中beforePopState使用

在某些情况下,希望监听popstate并在路由器对其进行操作之前执行某些操作。可以使用beforePopState。 在Next.js中,beforePopState是一个可选的生命周期函数,用于在浏览器的历史记录发生更改之前执行一些操作。具体来说,beforePopS…

DP读书:在常工院的2023年度总结

DarrenPig的年度总结 这是最好的时代,这是最坏的时代。——狄更斯 这是最好的时代,这是最坏的时代。——狄更斯 这是最好的时代,这是最坏的时代。——狄更斯 一、2023我的感受 不就是2023吗,不就是一年的经历吗,大家…

18 python快速上手

面向对象进阶 面向对象进阶1.成员1.1 变量易错点 & 面试题 1.2 方法1.3 属性 2.成员修饰符3.对象嵌套4.特殊成员总结 各位小伙伴想要博客相关资料的话关注公众号:chuanyeTry即可领取相关资料! 面向对象进阶 目标:掌握面向对象进阶相关知识…

【JavaEE】网络编程 TCP/UDP

作者主页:paper jie_博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文于《JavaEE》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造&…

WorkPlus移动应用管理平台,助力企业实现高效移动办公

在移动办公成为当今工作方式的主流趋势下,管理和运营企业移动应用成为了提高工作效率和数据安全的重要环节。而移动应用管理平台作为实现移动办公高效管理的关键工具,WorkPlus以其领先的性能和全面的功能,助力企业实现高效移动办公。 为何选…

【医学图像数据增强】切割-拼接(CS-DA)

切割-拼接CS-DA CS-DA 核心思想自然图像和医学图像之间的关键差异CS-DA 步骤确定增强后的数据数量 代码复现 CS-DA 核心思想 论文链接:https://arxiv.org/ftp/arxiv/papers/2210/2210.09099.pdf 大多数用于医学分割的数据增强技术最初是在自然图像上开发的&#x…

【Docker】Kubernetes 命令行 kubectl(kubectl 使用)

作者主页: 正函数的个人主页 文章收录专栏: Docker 欢迎大家点赞 👍 收藏 ⭐ 加关注哦! kubectl 使用 kubectl 是 Kubernetes 自带的客户端,可以用它来直接操作 Kubernetes。 使用格式有两种: kubectl […

C#hybridCLR热更新方案初探

前言 暂时处于初步研究状态,目前的框架使用还是尚少,本篇文章旨在同步给大家大概的使用流程和使用心得,在初步建立新项目时可以适当考虑。 介绍 热更新 与强制更新相对应,移动平台上App的可执行程序没有发生变化,仅…

免费畅享,打破写作瓶颈:星火写作助手覆盖全面,助你轻松创作

啰嗦几句 最近年终岁末,公司的各种文案各种总结,写得人是头晕脑胀,所以好多小伙伴最近在求智能写作的软件,最好是ChatGPT。 ChatGPT是国外产品,在国内并不能访问。而就智能写作来说,我们何必舍近求远呢&am…