Java核心API-日期时间
java.util.Date
Date类用来表示时间点。
时间是用距离一个固定时间点的毫秒数表示的,这个时间点就是纪元。
UTC时间是为表示这个纪元的科学标准时间,从1970年1月1日0时开始。另一种标准时GMT。
Date类的实现中
- 表示年份时,是以1900年为参照的,例如1970年表示为70,2020年表示为120;
- 表示月份时,是从0开始的,1月到12月,分别表示为0-11
- 表示天时,用1-31表示
- 表示时分秒时,与实际一致
Date类使用起来相当不方便,一般只是new一个Date对象,表示时间点,而不使用它提供的其它API。
Date date=new Date(0L);
System.out.println(date.getTime()); // 输出 0
System.out.printf("%d/%d/%d%n",
date.getYear(),date.getMonth(),date.getDate()); // 输出 70/0/1
Date now=new Date(); // 默认为当前时间
System.out.printf("%d/%d/%d,%d:%d:%d%n",
now.getYear(),now.getMonth(),now.getDate(),
now.getHours(),now.getMinutes(),now.getSeconds());
日期格式化与解析
java.text.DateFormat抽象类的子类SimpleDateFormat提供了format与parse方法,用来进行日期的格式化与解析。
DateFormat dtf=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss",Locale.SIMPLIFIED_CHINESE);
String nowStr = dtf.format(now);
System.out.println(nowStr);
Date birthday = dtf.parse("1998/06/28 10:47:40");
System.out.println(birthday.getTime());
java.util.Calendar
Calendar是另一种表示时间的API,尝试解决Date类的不合理之处,但是使用起来效果也不好,很少使用
GregorianCalendar calendar=new GregorianCalendar();
System.out.printf("%d/%d/%d,%d:%d:%d",
calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH),
calendar.get(Calendar.HOUR),calendar.get(Calendar.MINUTE),calendar.get(Calendar.SECOND));
java.time.LocalDate和java.time.LocalDateTime
LocalDate和LocalDateTime类是推荐使用的时间API,它们都是final类,其中的API不会修改值,而是返回一个新的对象。
LocalDate date=LocalDate.of(1998,6,28);
LocalDate now=LocalDate.now();
LocalDateTime now=LocalDateTime.now();
System.out.printf("%d/%d/%d,%d:%d:%d%n",
now.getYear(),now.getMonthValue(),now.getDayOfMonth(),
now.getHour(),now.getMinute(),now.getSecond());
LocalDateTime oneYearsLater = now.plusYears(1);
这2个类还提供了format和静态的parse方法,用于格式化与解析日期时间。
需要构造一个DateTimeFormatter对象
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss",Locale.getDefault());
String nowStr = now.format(dtf);
System.out.println(nowStr);
LocalDateTime dateTime = LocalDateTime.parse("2000/06/28 11:15:23",dtf);
System.out.println(dateTime.getYear());
Java核心API-日期时间的更多相关文章
- Java 8 新日期时间 API
Java 8 新日期时间 API 1. LocalDate.LocalTime.LocalDateTime LocalDate.LocalTime.LocalDateTime 实例是不可变的对象,分别 ...
- 使用Java编写一个日期时间封装类
package base; import java.util.GregorianCalendar; import java.util.StringTokenizer; import java.util ...
- 2018.6.19 Java核心API与高级编程实践复习总结
Java 核心编程API与高级编程实践 第一章 异常 1.1 异常概述 在程序运行中,经常会出现一些意外情况,这些意外会导致程序出错或者崩溃而影响程序的正常执行,在java语言中,将这些程序意外称为异 ...
- Java核心API需要掌握的程度
分类: java技术2009-08-29 01:03 213人阅读 评论(0) 收藏 举报 javaapiswingxmlio Java的核心API是非常庞大的,这给开发者来说带来了很大的方便,经常人 ...
- java创建Date日期时间笔记
(1)public Date() 创建的日期类对象的日期时间被设置成创建时刻相对应的日期时间. 例: Java代码 1.Date today=new Date(); //today被设置成创建时刻相 ...
- java里的日期时间
为了更好理解java的日期时间类,在这里我们先介绍一下关于历法.标准时间的一些概念. 历法有很多种,我们大中华上下五千年,自然也有自己的历法,生活中我们通常把自己传统的历法叫做农历,也有人叫它阴历或夏 ...
- java android中日期时间 问题总结
Date 类型: Date date = new Date(); // 代表获取当前系统日期和时间 System.out.println(date); 使用类的方法设置时间和日期:(通过该方法初始 ...
- java基础之日期时间工具类
package zy.test; import java.sql.Timestamp; import java.text.ParseException; import java.text.ParseP ...
- 在java中进行日期时间比较的4种方法
1. Date.compareTo() java.util.Date提供了在Java中比较两个日期的经典方法compareTo(). 如果两个日期相等,则返回值为0. 如果Date在date参数之后, ...
随机推荐
- 偷梁换柱:使用mock.patch辅助python单元测试
最近在搞软工项目的后端测试,重新复习了一下python的mock.patch,并用它简化了对一些复杂逻辑的测试,在此记录 问题描述 本组的项目比较特殊,设计对教务网站的模拟登陆与信息爬取,同时不少接口 ...
- [笔记] 《c++ primer》书店程序 Chapter7
Sales_data.h 1 #ifndef SALES_DATA_H 2 #define SALES_DATA_H 3 4 #include "Version_test.h" 5 ...
- http://www.loongnix.org/index.php/Lbrowser
http://www.loongnix.org/index.php/Lbrowser 浏览器是桌面应用的核心API软件,龙芯中科早在2011年就开始组建浏览器研发团队开展基于gecko.blink等内 ...
- 从CentOS7默认安装的/home中转移空间到根目录/ - LVM操作简明教程
一.基础概念 Cent0S 7默认启用LVM2(Logical Volume Manager),把机器的一块硬盘分为两个区sda1和sda2,其中分区sda1作为系统盘/boot挂载,少量空间:sda ...
- C语言printf-(转自shiney)
1.调用格式为 printf("<格式化字符串>", <参量表>); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另 ...
- 西门子S7系列以太网通讯处理器功能介绍
北京华科远创科技有限研发的远创智控型号ETH-YC模块适用于西门子S7-200/S7-300/S7-400.SMART S7-200.西门子数控840D.840DSL.合信.亿维PLC的PPI/MPI ...
- 根据某个数据 来筛选 DataTree 分支数里面的数据是否符合规则 进行筛选分支,展示
问题:如何在 DataTree 树形数据里每个分支里根据特定某个元素值,然后挑选出来 思路:先把分支提取出来,每个都要进行判断. 主要用到的电池: >.Cull Pattern 拓展资料:以下是 ...
- 深度学习数据特征提取:ICCV2019论文解析
深度学习数据特征提取:ICCV2019论文解析 Goal-Driven Sequential Data Abstraction 论文链接: http://openaccess.thecvf.com/c ...
- TensorFlow指定CPU和GPU方法
TensorFlow指定CPU和GPU方法 TensorFlow 支持 CPU 和 GPU.它也支持分布式计算.可以在一个或多个计算机系统的多个设备上使用 TensorFlow. TensorFlow ...
- GPU加速:宽深度推理
GPU加速:宽深度推理 Accelerating Wide & Deep Recommender Inference on GPUs 推荐系统推动了许多最流行的在线平台的参与.随着为这些系统提 ...