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参数之后, ...
随机推荐
- beta设计和计划
项目 内容 课程:北航-2020-春-软件工程 博客园班级博客 要求 Beta设计和计划 我们在这个课程的目标是 提升团队管理及合作能力,开发一项满意的工程项目 这个作业在哪个具体方面帮助我们实现目标 ...
- input type
input的type有: text 文本输入 password密码输入 file选择文件 radio单选按钮 checkbox复选按钮 submit对应form的action按钮 button 普通按 ...
- EasyBPM打印模板的缓存问题
业务平台EasyBPM(易实管理软件)有一个功能是模板打印的功能.就是可以使用一个docx格式的模板,输出一个docx格式的单据的文档. 打印的逻辑是先从服务端获取模板,如果没有对应的模板,就提示先上 ...
- [前端] JSON
背景 JavaScript对象表示法(JavaScript Object Notation):是一种存储数据的方式 JSON对象 创建 var gareen = {"name":& ...
- mate桌面用户 root 自动登录lightdm.conf -20190520 方法【fedora 21】mate
桌面用户自动登录lightdm.conf -20190520 方法修改 /etc/lightdm/lightdm.conf 步骤:1 vim /etc/lightdm/lightdm.conf 解除 ...
- 分布式存储ceph---部署ceph(2)
一.部署准备 准备5台机器(linux系统为centos7.6版本),当然也可以至少3台机器并充当部署节点和客户端,可以与ceph节点共用: 1台部署节点(配一块硬盘,运行ceph-depoly) 3 ...
- nosql数据库之Redis集群
Redis 集群是一个可以在多个 Redis 节点之间进行数据共享的设施(installation). Redis 集群不支持那些需要同时处理多个键的 Redis 命令, 因为执行这些命令需要在多个 ...
- python 从2个文件中提取不相同的内容并输出到第三个文件中
#-*- coding: UTF-8 -*- import re import sys import os str1=[] str2=[] str_dump=[] fa=open("A. ...
- Spring-Cloud之Feign原理剖析
Feign 主要是帮助我们方便进行rest api服务间的调用,其大体实现思路就我们通过标记注解在一个接口类上(注解上将包含要调用的接口信息),之后在调用时根据注解信息组装好请求信息,接下来基于rib ...
- MyBatis执行器
Mybatis的执行器 下面先展示一张图,用来说明一下Mybatis执行器的整体架构 SimpleExecutor 首先SimpleExecutor是我们最常使用的一个执行器,无论我们执行什么方法默认 ...