千家信息网

如何解析Java日期与时间类原理

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这期内容当中小编将会给大家带来有关如何解析Java日期与时间类原理,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。这篇文章主要介绍了Java日期与时间类原理解析,文中
千家信息网最后更新 2026年11月03日如何解析Java日期与时间类原理

这期内容当中小编将会给大家带来有关如何解析Java日期与时间类原理,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

这篇文章主要介绍了Java日期与时间类原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

基础知识

日期: 类似于 2018-12-12 时间: 类似于 2018-12-12 12:12:12 时刻: 类似于 2018-12-12 12:12:12 地区: 计算机中的 Locale, 如 zh_CN, en_US 等, 影响着对于日期, 时间, 货币等格式的显示 EpochTime: 从 1970 年 1 月 1 日 UTC+00:00 到现在的秒数(不是毫秒数), 大致可认为与 TimeStamp 等价 时区: 全球共 24 个, 伦敦 (GMT+00:00) 的是标准时区 GMT 与 UTC 大致可以认为是等价的, GMT 与 UTC 表示的时间不受夏令时影响, 而以地区(如 America/New_York)表示的时间受夏令时影响 日期在计算机中都存储为 EpochTime(即 TimeStamp), 所以全球的计算机都是相同的, 但是因为计算机地区等设置的不同, 所以显示为不同的时间 Date 与 Calendar

Date 的用法

// 获取一个 Date 对象, 即表示现在的时刻Date date = new Date();// 获取 TimeStamplong timestamp = date.getTime();// timestamp 生成 Datedate = new Date(timestamp);// 转换为默认格式的字符串String dateString = date.toString();// 按照指定格式转换SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");dateString = simpleDateFormat.format(date);// 按照指定格式字符串解析为 Datedate = simpleDateFormat.parse(dateString);

Calendar 的用法

// 获取一个 CalendarCalendar calendar = Calendar.getInstance();// 获取今天是本月的第几天int day = calendar.get(Calendar.DAY_OF_MONTH);// 设置为指定时间calendar.set(Calendar.DAY_OF_MONTH, 1);// 转换为 DateDate date = calendar.getTime();// 转换为 timestamplong timestamp = calendar.getTimeInMillis();

LocalDateTime 的用法

// 获取一个 LocalDateTimeLocalDateTime localDateTime = LocalDateTime.now();// 获取一个指定的 LocalDateTime, 需要注意月份从 1 开始而非 0, 所以 12 月用 12localDateTime = LocalDateTime.of(2018, 12, 12, 21, 36, 36);// LocalDateTime 格式化为指定格式DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");String localDateTimeString = dateTimeFormatter.format(localDateTime);// 按照指定格式解析 LocalDateTime, 需要注意这里 DateTimeFormatter 是作为参数参入localDateTime = LocalDateTime.parse(localDateTimeString, dateTimeFormatter);// 减去一天, 需要注意该对象是不可变的localDateTime = localDateTime.minusDays(1);// 小时设置为 12 点localDateTime = localDateTime.withHour(12);// 设置为本月的第一天localDateTime = localDateTime.withDayOfMonth(1);// 设置为本月的最后一天, 注意这里是 TemporalAdjusters 而不是 TemporalAdjusterlocalDateTime = localDateTime.with(TemporalAdjusters.lastDayOfMonth());// 判断两个 LocalDateTime 的先后boolean before = localDateTime.isBefore(LocalDateTime.now());// 计算两个 LocalDate 相差的天数Period period = LocalDate.now().until(LocalDate.of(2019, 1, 1));long days = period.getDays();// 计算两个 LocalDateTime 相差的天数, 可能为负数days = localDateTime.until(LocalDateTime.now(), ChronoUnit.DAYS);// 距离 EpochTime 的天数days = LocalDate.now().toEpochDay();// LocalDateTime 无法与 timestamp 进行转换, 因为它没有时区的概念

ZonedDateTime 相当于 LocalDateTime 加上了一个 ZoneId

Instant 可以理解为 TimeStamp, 也就是说相当于一个 Long 的封装类

// 从 LocalDateTime 获取 ZonedDateTimeZonedDateTime zonedDateTime = LocalDateTime.now().atZone(ZoneId.of("Asia/Shanghai"));// 从 Instant 获取 ZonedDateTimezonedDateTime = Instant.now().atZone(ZoneId.systemDefault());// 获取指定的 Instant, 需要注意 System.currentTimeMillis() 返回的是毫秒, 而 TimeStamp 是秒Instant instant = Instant.ofEpochSecond(System.currentTimeMillis() / 1000);// TimeStamp 获取 LocalDateTimeLocalDateTime localDateTime = LocalDateTime.ofEpochSecond( // 获取当前的时间戳(timestamp) instant.getEpochSecond(), // 毫秒 0, // 获取系统的 ZoneOffset, 即时区偏移 OffsetDateTime.now().getOffset());// 星期相关的操作LocalDate now = LocalDate.now();LocalDate sundayDate = now.with(DayOfWeek.SUNDAY);int sundayValue = sundayDate.getDayOfWeek().getValue();

上述就是小编为大家分享的如何解析Java日期与时间类原理了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

时间 格式 日期 时区 计算机 原理 两个 地区 天数 影响 不同 全球 内容 夏令 夏令时 字符 字符串 对象 时刻 知识 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司 喔噻互联网科技有限公司 互联网科技公司排名 百单网互联网科技有限公司怎么样 科技赋能下的互联网金融 北京互联网科技 互联网科技美容 互联网科技大会 西藏七维空间互联网科技有限公司 互联网教育科技公司vipkid 欧洲十大科技互联网公司 武汉健翔互联网络科技有限公司 阿大互联网科技有限公司 互联网科技大奖都有哪些公司 996高科技互联网公司 中科明德北京互联网科技 山东星卡互联网科技有限公司官网 富国互联网金融科技混合基金 数字互联网科技有限公司 中国主要互联网科技公司 互联网的科技 科技互联网技术 没上市的科技互联网公司 安徽鑫晟辉互联网科技 科技类的互联网平台 乌苏新华互联网科技做什么的 天津腾达互联网科技有限公司 广州新华互联网科技学校电竞方面 安徽零酒互联网科技有限公司 上海互联网科技园景观
0