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参数之后, ...
随机推荐
- leetcode 1081
开始的思路是遍历存储每个字符的所有位置,再进行扫描处理,但是实际操作并没有很熟练,于是在讨论区学习后,有了下面的解法! 首先需要知道不同的字符在字符串中的最后的位置(理论上的最优位置) 然后扫描字符串 ...
- Java中Stream流相关介绍
什么是Stream? Stream是JDK8 API的新成员,它允许以声明性方式处理数据集合 特点 代码简洁: 函数式编程写出的代码简洁且意图明确,使用stream接口让你从此告别for循环 多核友好 ...
- copy和deep.copy
https://blog.csdn.net/qq_32907349/article/details/52190796 加上crossin公众号上的可变对象与不可变对象 a=[1,2,3,[4]] b= ...
- 华为eNSP模拟器— telnet实验
华为eNSP模拟器-telnet实验 一.实验一 路由交换之间实现telnet登陆 实验拓扑 实验目的: 路由器作为 telnet 服务器 交换机作为客户端去连接路由器 实验步骤: 路由器配置 < ...
- 035.Python正则表达式
正则表达式 一 介绍 拼正则表达式是什么? 它是约束字符串匹配某种形式的规则 正则表达式有什么用? 检测某个字符串是否符合规则比如:判断手机号,身份证号是否合法 提取网页字符串中想要的数据.比如:爬虫 ...
- Linux服务之nginx服务篇二(搭建)
一.简易搭建安装步骤 0.检查环境 1.配置yum源 使用yum list nginx 检查yum源中是否有nginx安装包 #官方网络源需要安装epel-* #或使用251的adv源(老师的yum源 ...
- 3.14-19 wc、iconv、dos2unix、diff、vimdiff、rev
3.14 wc:统计文件的行数.单词数或字节数 wc命令用于统计文件的行数.单词数或字节数. -c 统计字节数 -w 统计单词数 -l 统计行数 -L 打印最长行的长度 -m 统计字符数 ...
- WebConfig配置,添加静态资源,外部可以直接访问地址
此配置是处理springboot拦截静态文件的 代码如下: @Configuration public class WebMvcConfig implements WebMvcConfigurer { ...
- spring模板
applicationContext <?xml version="1.0" encoding="UTF-8"?> <beans xmlns= ...
- mybatis运行出现org.apache.ibatis.binding.BindingException
今天学习mybatis的第一天,发现用junit测试报出了次异常:org.apache.ibatis.binding.BindingException: Type interface cn.dzp.d ...