Java 日期 API

news/2024/11/12 20:00:32/文章来源:https://www.cnblogs.com/ReturnOfTheKing/p/18539559

JDK8之前

日期与时间戳之间的转换

public class Test {public static void main(String[] args) {Date date = new Date();System.out.println("date = " + date); // date = Sun Sep 26 14:48:52 CST 2021Date date1 = new Date(1632638970000L);System.out.println("date1 = " + date1); // date1 = Sun Sep 26 14:49:30 CST 2021long time = date.getTime();System.out.println("time = " + time); // time = 1632639026166date.setTime(1632638970000L);System.out.println("date = " + date); // date = Sun Sep 26 14:49:30 CST 2021}
}

日历获取年月日字段

public class Test {public static void main(String[] args) {Calendar calendar = Calendar.getInstance();int year = calendar.get(Calendar.YEAR);int month = calendar.get(Calendar.MONTH) + 1;int day = calendar.get(Calendar.DAY_OF_MONTH);int hour = calendar.get(Calendar.HOUR_OF_DAY);int minute = calendar.get(Calendar.MINUTE);int second = calendar.get(Calendar.SECOND);int milliSecond = calendar.get(Calendar.MILLISECOND);// 2021-9-26 15:14:6:16System.out.print(year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second + ":" + milliSecond);}
}

日期格式化

public class Test {public static void main(String[] args) throws ParseException {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date date = new Date();// 将日期对象格式化为字符串String format = sdf.format(date);System.out.println("format = " + format); // format = 2021-09-26 16:02:17// 将字符串解析为日期对象Date parse = sdf.parse(format);System.out.println("parse = " + parse); // parse = Sun Sep 26 16:02:17 CST 2021}
}

JDK8之后

之前存在的问题

  1. Java 1.0 中包含了一个 Date 类,但是它的大多数方法已经在 Java 1.1 中引入 Calendar 类的时候被废弃了。
  2. 格式化只对 Date 有效,Calendar 则不行。
  3. 它们不是线程安全的,不能处理闰秒等

 

注:API 功能更加强大,但好像用的更多的还是老版本写法

本地日期时间

  • Instant 是带时区的(以UTC为准),用来替换以前的 Date
  • LocalDateTIme 是不带时区(以本地时区为准)的,用来替换以前的 Calendar
public class Test {public static void main(String[] args) {LocalDate now = LocalDate.now();System.out.println("now = " + now); // now = 2021-09-26LocalTime now1 = LocalTime.now();System.out.println("now1 = " + now1); // now1 = 20:02:32.659LocalDateTime now2 = LocalDateTime.now();System.out.println("now2 = " + now2); // now2 = 2021-09-26T20:02:32.660Instant now = Instant.now(); System.out.println("now = " + now); // now = 2021-09-27T01:54:39.351ZLocalDateTime now1 = LocalDateTime.now();System.out.println("now1 = " + now1); // now1 = 2021-09-27T09:54:39.401LocalDateTime now = LocalDateTime.now();int year = now.getYear();System.out.println("获取年份:" + year);int monthValue = now.getMonthValue();System.out.println("获取月份:" + monthValue);int dayOfMonth = now.getDayOfMonth();System.out.println("获取天数:" + dayOfMonth);int dayOfYear = now.getDayOfYear();System.out.println("获取一年中的第" + dayOfYear + "天");DayOfWeek dayOfWeek = now.getDayOfWeek();System.out.println("获取星期" + dayOfWeek.getValue());int hour = now.getHour();System.out.println("获取小时:" + hour);int minute = now.getMinute();System.out.println("获取分钟:" + minute);int second = now.getSecond();System.out.println("获取秒:" + second);int nano = now.getNano();System.out.println("获取纳秒:" + nano);}
}

日期格式化

public class Test {public static void main(String[] args) {DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");// 将日期格式化为字符串String format = df.format(LocalDateTime.now());System.out.println("format = " + format); // format = 2021-09-27 13:55:51// 将字符串解析为日期TemporalAccessor parse = df.parse("2011-11-11 11:11:11");LocalDateTime from = LocalDateTime.from(parse);System.out.println("from = " + from); // from = 2011-11-11T11:11:11}
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

地球空间网格编码规则

中国国家标准提出《地球空间网格编码规则》(GB/T 40087-2021)是2021年4月30日实施的一项中华人民共和国国家标准 外文名称:Geospatial grid encoding rule 规定了地球空间网格剖分要求和编码方法。该标准适用于作为空间单元与空间信息组织的地球空间网格剖分和代码标识。 编…

海柔仿真系统存储实践:混合云架构下实现高可用与极简运维

海柔创新是一家专注于箱式仓储机器人系统的研发和设计的科技公司,其仿真平台通过数字模拟技术,再现实际仓库环境和设备,利用导入的地图、订单、库存及策略配置等数据来验证和优化仓储解决方案,确保设计方案的效率和合理性。 最初,海柔的仿真平台在单机环境中运行,但随着数…

ENVI55扩展工具: MODIS Gap-Filled 数据读取工具

1 工具介绍 工具支持 ENVI 5.5 及以上版本。 大部分 MODIS 产品数据均可使用 MCTK 工具打开和处理。但是最近在使用 MODIS Gap-Filled 数据时,发现 MCTK 工具并不支持,会弹出如下提示。 MODIS Gap-Filled 数据通常为年合成产品,例如 MOD17A3HGF 为年合成植被净初级生产力和…

如何打造高效团队文化:项目管理工具必不可少

在当今的职场环境中,“高效团队文化”已成为一个热门话题。高效的团队不仅能快速适应项目需求的变化,还能通过顺畅的沟通和高效的执行来确保高质量的成果。而一个成功的团队文化通常离不开三个关键要素:合适的管理工具、有效的沟通机制、以及强大的执行力。 建立高效团队文化…

深圳电子MES制造执行系统选型特点

电子mes系统在选型时,需要考虑多个特点以确保系统能够满足企业的实际需求。针对广州地区的MES系统选型,以下是一些关键特点:深圳mes系统数据采集与整合能力:MES系统应能够整合多种数据采集渠道(如RFID、条码设备、PLC、Sensor等),确保现场数据的实时、准确、全面采集。良…

QRust(三)编程框架

把Rust作为动态库或静态库链接到Qt环境中,本就是一件复杂的工作,在此基础上还要引入QRust更是难上加难,因此在这一章我将手把手的引导你向前迈进,并跨过我曾经遇到的坑。 编程环境 Qt环境:Qt6,没错不支持Qt5。因为我发现struct的类型推导在Qt5环境下有错误。 Rust环境:理…

ARL356-ASEMI车用整流二极管ARL356

ARL356-ASEMI车用整流二极管ARL356编辑:ll ARL356-ASEMI车用整流二极管ARL356 型号:ARL356 品牌:ASEMI 封装:BUTTON 特性:车用整流二极管 正向电流:35A 反向耐压:600V 恢复时间:ns 引脚数量:2 芯片个数:2 芯片尺寸:MIL 浪涌电流:500A 漏电流:10ua 工作温度:-65℃…

信息收集(下)

IP端口信息收集4.1 IP信息收集4.1.1 IP反查域名http://stool.chinaz.com/samehttp://tools.ipip.net/ipdomain.php如果渗透目标为虚拟主机,那么通过IP反查到的域名信息很有价值,因为一台物理服务器上面可能运行多个虚拟主机。这些虚拟主机有不同的域名,但通常共用一个IP地址…

web(xss漏洞作业)

web安全作业(xss漏洞)需要掌握的知识XSS漏洞(原理、分类、危害、常用的payload)XSS平台的搭建与使用理论作业 1.xss 漏洞原理? 2.XSS的类型? 3.反射型XSS和存储型XSS的区别? 4.XSS的攻击过程? 5.XSS常用的payload构造方法? 1.原理:攻击者在有漏洞的前端页面嵌入恶意代…

QRust(一) 简介

QRust是一个开源组件,是Qt和Rust两种语言的混合编程中间件,是Qt调用Rust函数的支持技术。QRust来源于工具软件OnTheSSH,OnTheSSH软件由Qt和Rust两种语言共同构建,Rust实现了SSH通讯底层协议,Qt搭建程序界面,Qt调用Rust的技术需求催生出了QRust。 一个使用QRust的例子: R…

服务器漏洞修复:TLS 1.0 已启用、HSTS、CSP

1、TLS 1.0 已启用 描述: 此 Web 服务器支持通过 TLS 1.0 加密。TLS 1.0 不被认为是“强密码术”。根据 PCI 数据安全标准 3.2(.1) 的定义和要求,在保护从网站往返的敏感信息时,TLS 1.0 并不被认为是 "强加密"。根据 PCI,"2018 年 6 月 30 日是禁用 SSL/早前…

一款 C# 编写的神经网络计算图框架

前言 深度学习技术的不断发展,神经网络在各个领域得到了广泛应用。为了满足 .NET 开发的需求,推荐一款使用 C# 编写的神经网络计算图框架。 框架的使用方法接近 PyTorch,提供了丰富的示例和详细的文档,帮助大家快速上手。 框架介绍 项目完全使用 C# 编写,提供了一个透明的…