Java 时间日期操作

文章目录

  • Java 时间日期操作
    • LocalDate LocalTime LocalDateTime
      • 时间
      • 日期时间
    • 时区
      • ZoneId
      • ZonedDateTime
      • ZonedDateTime转换
    • 时间调整
      • with
      • 运算
      • 时间片
      • 时间片
      • 运算
    • 日期时间字符串
      • 时间日期格式
    • 时区表

LocalDate LocalTime LocalDateTime

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

LocalDate LocalTime LocalDateTime 遵循的是国际标准ISO 8601

获取当前日期

LocalDate ld = LocalDate.now();
int year = ld.getYear();
int month = ld.getMonth().getValue();
int day = ld.getDayOfMonth();

月 日 不是从 0 开始, 1 月 就是 1, 不再是 0

构建 LocalDate

LocalDate ld = LocalDate.parse("2020-12-09");
LocalDate ld_2 = LocalDate.parse("12-09-2020", DateTimeFormatter.ofPattern("MM-dd-yyyy"));
LocalDate ld_3 = LocalDate.of(2020, 12 , 9);

LocalDate 默认使用 ISO 8601 标准,也可以指定日期格式

时间

获取本地时间

LocalTime lt = LocalTime.now();

可以分别获取 时 分 秒 纳秒

int hour = lt.getHour();
int second = lt.getSecond();
int minute = lt.getMinute();
int nano = lt.getNano();

构建指定本地时间

LocalTime lt = LocalTime.parse("13:24:30");
LocalTime lt_1 = LocalTime.of(13, 24, 30, 0);
LocalTime lt_2 = LocalTime.parse("13:24:30", DateTimeFormatter.ofPattern("H:i:s"));

日期时间

获取指定本地时间

LocalDateTime ldt = LocalDateTime.now();

可以分别获取 年 月 日 时 分 秒 纳秒

int year = ldt.getYear();
int month = ldt.getMonth().getValue();
int day = ldt.getDayOfMonth();
int hour = ldt.getHour();
int second = ldt.getSecond();
int minute = ldt.getMinute();
int nano = ldt.getNano();

构建本地日期时间

LocalDateTime m_ldt_1 = LocalDateTime.of(2021, 6, 11, 23, 12, 24, 3000);// 使用 LocalDate 和 LocalTime 构建
LocalDate mld = LocalDate.of(2021, 6, 11);
LocalTime mlt = LocalTime.of(23, 12, 24);
LocalDateTime m_ldt_2 = LocalDateTime.of(mld, mlt);// 解析默认格式
LocalDateTime s_ldt_1 = LocalDateTime.parse("2021-12-13T23:12:24");
// 解析自定义格式
LocalDateTime s_ldt_2 = LocalDateTime.parse("2021-12-13 23:12:24", DateTimeFormatter.ofPattern("y-M-d H:m:s"));

时区

ZoneId

获取当前时区

ZoneId zoneId = ZoneId.systemDefault();System.out.println(zoneId);

获取指定时区

ZoneId zoneId = ZoneId.of("America/New_York");System.out.println(zoneId);

ZonedDateTime

获取当前时区的时期时间

ZonedDateTime zonedDateTime = ZonedDateTime.now();
System.out.println("本地时区" + zonedDateTime);
// 本地时区 2021-11-26T08:34:05.919145+08:00[Asia/Shanghai]

获取于此同时, 纽约日期时间

ZonedDateTime zonedDateTimeNewYork = ZonedDateTime.now(ZoneId.of("America/New_York"));
System.out.println("纽约时区" + zonedDateTimeNewYork);
// 纽约时区 2021-11-25T19:34:05.929306-05:00[America/New_York]

从一个时区获取另一个时区的时间

LocalDateTime ldt = LocalDateTime.of(2021, 6, 11, 23, 12, 24, 3000);
ZoneId zidShangHai = ZoneId.of("Asia/Shanghai");
ZonedDateTime zdtShangHai = ldt.atZone(zidShangHai);ZoneId zidNewYork = ZoneId.of("America/New_York");
ZonedDateTime zdt_new_york = zdtShangHai.withZoneSameInstant(zidNewYork);System.out.println(zdt_new_york);

ZonedDateTime转换

ZonedDateTime 转 long

ZonedDateTime zonedDateTime = ZonedDateTime.now();
long timestamps = zonedDateTime.toEpochSecond();
System.out.println("本地时间戳" + timestamps);
// 本地时间戳 1637887053

时间戳表示 自 1970年0时0分0秒 到当前时间的秒数

  • toLocalDateTime
  • toLocalDate
  • toLocalTime

LocalDateTime 转 ZonedDateTime

LocalDateTime ldt = LocalDateTime.now();ZonedDateTime zdt_local = ldt.atZone(ZoneId.systemDefault());
ZonedDateTime zdt_new_york = ldt.atZone(ZoneId.of("America/New_York"));

时间调整

with

支持 LocalDateTime LocalDate LocalTime ZoneDateTime

  • withYear 设置指定年
  • withMonth 设置指定月
  • withDayOfMonth
  • withHour
  • withMinute
  • withSecond
  • withNano

运算

在当前日期时间基础上, 添加指定的时间, 比如: plusYears(2) 表示增加 2 年

plus 表示增加, minus 表示减少

  • plusYears() minusYears()
  • plusMonths() minusMonths()
  • plusDays() minusDays()
  • plusWeeks() minusWeeks()
  • plusHours() minusHours()
  • plusMinutes() minusMinutes()
  • plusSeconds() minusSeconds()
  • plusNanos() minusNanos() 纳秒

时间片

时间片

Period Duration 继承自, TemporalAmount 表示一段日期时间; Period 表示一段日期, Duration 表示一段时间

  • Duration.ofDays(1)
  • Duration.ofHours(1)
  • Period.ofYears(1)

运算

plus(TemporalAmount) 增加 时间片
minus(TemporalAmount) 减少 时间片

LocalDateTime ldt = LocalDateTime.of(2021, 1, 12, 13, 24, 12);Duration five_minute = Duration.ofMinutes(10);LocalDateTime ldt_new = ldt.plus(five_minute);
// LocalDateTime ldt_new = ldt.minus(five_minute);
System.out.println(ldt_new);// 2021-01-12T13:34:12

日期时间字符串

时间日期格式

ZonedDateTime zonedDateTime = ZonedDateTime.now();
String str_t = zonedDateTime.format(DateTimeFormatter.ofPattern("MM-dd-yyyy"));

Symbol  Meaning                     Presentation      Examples
------  -------                     ------------      -------
G       era                         text              AD; Anno Domini; A
y       year-of-era                 year              2004; 04
D       day-of-year                 number            189
M/L     month-of-year               number/text       7; 07; Jul; July; J
d       day-of-month                number            10
g       modified-julian-day         number            2451334
Q/q     quarter-of-year             number/text       3; 03; Q3; 3rd quarter
Y       week-based-year             year              1996; 96
w       week-of-week-based-year     number            27
W       week-of-month               number            4
E       day-of-week                 text              Tue; Tuesday; T
e/c     localized day-of-week       number/text       2; 02; Tue; Tuesday; T
F       day-of-week-in-month        number            3
a       am-pm-of-day                text              PM
h       clock-hour-of-am-pm (1-12)  number            12
K       hour-of-am-pm (0-11)        number            0
k       clock-hour-of-day (1-24)    number            24
H       hour-of-day (0-23)          number            0
m       minute-of-hour              number            30
s       second-of-minute            number            55
S       fraction-of-second          fraction          978
A       milli-of-day                number            1234
n       nano-of-second              number            987654321
N       nano-of-day                 number            1234000000
V       time-zone ID                zone-id           America/Los_Angeles; Z; -08:30
v       generic time-zone name      zone-name         Pacific Time; PT
z       time-zone name              zone-name         Pacific Standard Time; PST
O       localized zone-offset       offset-O          GMT+8; GMT+08:00; UTC-08:00
X       zone-offset 'Z' for zero    offset-X          Z; -08; -0830; -08:30; -083015; -08:30:15
x       zone-offset                 offset-x          +0000; -08; -0830; -08:30; -083015; -08:30:15
Z       zone-offset                 offset-Z          +0000; -0800; -08:00
p       pad next                    pad modifier      1

时区表

<?xml version="1.0" encoding="UTF-8"?>
<timezones><timezone id="Asia/Shanghai">中国标准时间 (北京)</timezone><timezone id="Asia/Hong_Kong">香港时间 (香港)</timezone><timezone id="Asia/Taipei">台北时间 (台北)</timezone><timezone id="Asia/Seoul">首尔</timezone><timezone id="Asia/Tokyo">日本时间 (东京)</timezone><timezone id="America/New_York">美国东部时间 (纽约)</timezone><timezone id="America/Denver">美国山区时间 (丹佛)</timezone><timezone id="America/Costa_Rica">美国中部时间 (哥斯达黎加)</timezone><timezone id="America/Chicago">美国中部时间 (芝加哥)</timezone><timezone id="America/Mexico_City">美国中部时间 (墨西哥城)</timezone><timezone id="America/Regina">美国中部时间 (里贾纳)</timezone><timezone id="America/Los_Angeles">美国太平洋时间 (洛杉矶)</timezone><timezone id="Pacific/Majuro">马朱罗</timezone><timezone id="Pacific/Midway">中途岛</timezone><timezone id="Pacific/Honolulu">檀香山</timezone><timezone id="America/Anchorage">安克雷奇</timezone><timezone id="America/Tijuana">美国太平洋时间 (提华纳)</timezone><timezone id="America/Phoenix">美国山区时间 (凤凰城)</timezone><timezone id="America/Chihuahua">奇瓦瓦</timezone><timezone id="America/Bogota">哥伦比亚时间 (波哥大)</timezone><timezone id="America/Caracas">委内瑞拉时间 (加拉加斯)</timezone><timezone id="America/Barbados">大西洋时间 (巴巴多斯)</timezone><timezone id="America/Manaus">亚马逊标准时间 (马瑙斯)</timezone><timezone id="America/St_Johns">纽芬兰时间 (圣约翰)</timezone><timezone id="America/Santiago">圣地亚哥</timezone><timezone id="America/Argentina/Buenos_Aires">布宜诺斯艾利斯</timezone><timezone id="America/Godthab">戈特霍布</timezone><timezone id="America/Montevideo">乌拉圭时间 (蒙得维的亚)</timezone><timezone id="America/Sao_Paulo">圣保罗</timezone><timezone id="Atlantic/South_Georgia">南乔治亚</timezone><timezone id="Atlantic/Azores">亚述尔群岛</timezone><timezone id="Atlantic/Cape_Verde">佛得角</timezone><timezone id="Africa/Casablanca">卡萨布兰卡</timezone><timezone id="Europe/London">格林尼治标准时间 (伦敦)</timezone><timezone id="Europe/Amsterdam">中欧标准时间 (阿姆斯特丹)</timezone><timezone id="Europe/Belgrade">中欧标准时间 (贝尔格莱德)</timezone><timezone id="Europe/Brussels">中欧标准时间 (布鲁塞尔)</timezone><timezone id="Europe/Sarajevo">中欧标准时间 (萨拉热窝)</timezone><timezone id="Africa/Brazzaville">西部非洲标准时间 (布拉扎维)</timezone><timezone id="Africa/Windhoek">温得和克</timezone><timezone id="Asia/Amman">东欧标准时间 (安曼)</timezone><timezone id="Europe/Athens">东欧标准时间 (雅典)</timezone><timezone id="Asia/Beirut">东欧标准时间 (贝鲁特)</timezone><timezone id="Africa/Cairo">东欧标准时间 (开罗)</timezone><timezone id="Europe/Helsinki">东欧标准时间 (赫尔辛基)</timezone><timezone id="Asia/Jerusalem">以色列时间 (耶路撒冷)</timezone><timezone id="Africa/Harare">中部非洲标准时间 (哈拉雷)</timezone><timezone id="Europe/Minsk">明斯克</timezone><timezone id="Asia/Baghdad">巴格达</timezone><timezone id="Europe/Moscow">莫斯科</timezone><timezone id="Asia/Kuwait">科威特</timezone><timezone id="Africa/Nairobi">东部非洲标准时间 (内罗毕)</timezone><timezone id="Asia/Tehran">伊朗标准时间 (德黑兰)</timezone><timezone id="Asia/Baku">巴库</timezone><timezone id="Asia/Tbilisi">第比利斯</timezone><timezone id="Asia/Yerevan">埃里温</timezone><timezone id="Asia/Dubai">迪拜</timezone><timezone id="Asia/Kabul">阿富汗时间 (喀布尔)</timezone><timezone id="Asia/Karachi">卡拉奇</timezone><timezone id="Asia/Oral">乌拉尔</timezone><timezone id="Asia/Yekaterinburg">叶卡捷林堡</timezone><timezone id="Asia/Calcutta">加尔各答</timezone><timezone id="Asia/Colombo">科伦坡</timezone><timezone id="Asia/Katmandu">尼泊尔时间 (加德满都)</timezone><timezone id="Asia/Almaty">阿拉木图</timezone><timezone id="Asia/Rangoon">缅甸时间 (仰光)</timezone><timezone id="Asia/Krasnoyarsk">克拉斯诺亚尔斯克</timezone><timezone id="Asia/Bangkok">曼谷</timezone><timezone id="Asia/Irkutsk">伊尔库茨克时间 (伊尔库茨克)</timezone><timezone id="Asia/Kuala_Lumpur">吉隆坡</timezone><timezone id="Australia/Perth">佩思</timezone><timezone id="Asia/Yakutsk">雅库茨克时间 (雅库茨克)</timezone><timezone id="Australia/Darwin">达尔文</timezone><timezone id="Australia/Brisbane">布里斯班</timezone><timezone id="Asia/Vladivostok">海参崴时间 (符拉迪沃斯托克)</timezone><timezone id="Pacific/Guam">关岛</timezone><timezone id="Australia/Adelaide">阿德莱德</timezone><timezone id="Australia/Hobart">霍巴特</timezone><timezone id="Australia/Sydney">悉尼</timezone><timezone id="Asia/Magadan">马加丹时间 (马加丹)</timezone><timezone id="Pacific/Auckland">奥克兰</timezone><timezone id="Pacific/Fiji">斐济</timezone><timezone id="Pacific/Tongatapu">东加塔布</timezone>
</timezones>

Java 时间日期操作相关推荐

  1. java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)...

    转载地址:http://www.devba.com/index.php/archives/4581.html java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明); ...

  2. java时间,日期,毫秒值,String的相互转换总结

    java时间日期的各种转换总结以及应用实例 由于工作中经常要用到时间,日期,以及当前时间的毫秒值等 很多时候涉及到了它们之间的相互转换,今天就好好的总结一下. 首先基本介绍一下java中有关时间,日期 ...

  3. mysql java 日期格式化_(转)java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)...

    java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明);部分资料参考网络资源 1. java向MySQL插入当前时间的四种方式 第一种:将java.util.Date ...

  4. java时间日期格式化和JDBC中的处理

    java时间日期格式化和JDBC中的处理 时间格式化类 SimpleDateFormat类 字符串格式化为时间对象 .parse()方法 时间对象格式化为字符串 .format()方法 DateTim ...

  5. Java常用日期操作

    对java中常用的日期操作进行整理. 1.日期格式化 /* * 日期格式化类(必须掌握) * API: * G Era 标志符 Text AD y 年 Year 1996; 96 M 年中的月份 Mo ...

  6. Java时间日期格式转换

    突然忘记了时间格式怎么转换,特此做个记录 Java时间格式转换大全import java.text.*; import java.util.Calendar; public class VeDate ...

  7. javascript时间日期操作

    Js获取当前日期时间及其它操作 var myDate = new Date(); myDate.getYear();        //获取当前年份(2位) myDate.getFullYear(); ...

  8. Java时间日期格式转换Date转String和String转Date

    Java时间格式转换大全 谢谢大神的时间格式转换稿子:https://blog.csdn.net/u010486495/article/details/79260448 查阅后发现没有我想要的,后经人 ...

  9. Java时间日期显示

    Java中最简单的就是用Date来显示时间日期.列: public static void main(String[] args) {Date date = new Date();System.out ...

最新文章

  1. Django 图片上传upload_to路径指定失效的问题记录
  2. 干货 | 深度学习检测小目标常用方法
  3. 关于Spring Boot你不得不知道的事
  4. NFS 网络挂载问题 解决
  5. 浅谈Android中Lifecycle
  6. 【报告分享】疫情期间抖音、快手带货趋势分析报告.pdf(附下载链接)
  7. 引用java8里的方法_Java8中方法引用的使用详解
  8. 保护站点子目录的文件
  9. 分分钟搞定LabVIEW读取与写入Excel【三易电子工作室】
  10. python 使用 reportlab 生成 pdf
  11. Mac 输入法候选词框消失的解决方法
  12. Python爬虫入门教程05:B站视频弹幕的爬取
  13. Java工程探讨2020-11-07
  14. Android基础整合项目之节日群发助手
  15. 谈谈基因的黑科技 - 抛砖引玉篇
  16. Webpack 搭建 Vue + ts + tsx
  17. vue-element-admin/template+tornado(pyrestful)前后端分离框架实践(1)——自定义菜单和仪表盘
  18. Parameter number 2 is not an OUT parameter 问题的解决方法
  19. cocos creator游戏发布和部署-HTML5篇
  20. 访问 IIS 元数据库失败(转)

热门文章

  1. C语言有序单链表合并
  2. 因为痛,所以青春之摘写
  3. 网上书城项目日记(一)
  4. 全网最详细中英文ChatGPT-API文档(一)开始使用ChatGPT——导言
  5. bugfree搭建-windows系统
  6. 重庆北大青鸟解放碑校区 A08班 传小江组 作品名称:电子商务后台系统
  7. kafka-消息格式
  8. (CVPR 20) D3Feat: Joint Learning of Dense Detection and Description of 3D Local Features
  9. @Scheduled注解实现定时任务
  10. 访问文件夹路径,文件名