文档章节

Java的时间、日期类

西红柿的眼泪
 西红柿的眼泪
发布于 2016/07/12 16:09
字数 908
阅读 61
收藏 1

java原本提供了date和Calendar用于处理日期、时间的类,包括创建日期、时间的对象。获取系统当前的日期、时间等操作。但Date不仅无法实现国际化,而且他对不同属性也使用了前后矛盾的偏移量,月份从0开始 天数从一开始,年份从1900开始的,而calendar又过于复杂。所以一般用java8全新的日期时间类。

1.Date类处理时间,在java.util包下,Date类提供六个构造方法,但有四个已经过时,会引起编译器的警告,剩下两个Data()生成一个代表当前时间的Date对象,该构造器在底层还是带哦用了System.currentTimeMillis()获得long整数的日期作为参数;Date(long date)根据指定long型的整数来生成一个Date对象,该构造器的参数表示创建的Date对象和GMT1970年1月1日00:00:00之间的时间的差,以毫秒作为计时单位。与构造器相同,Date的大部分方法也已经过时了,boolean after(Date when)测试该是日期是否在指定日期when之后,boolean before(Date when)之前,long getTime():返回时间对应的long型的整数,即从GMT1970-01-01 00:00:00到该Date对象之间的时间差,以毫秒作为计时单位。void setTime(long time)设置该Date对象的时间。

2.java提供了Calendar类来更好的处理时间和日期,Calender是一个抽象的类,它用于表示日历。Gelender类本身就是一个抽象类,不能够被实例化,提供日历类的模板,java本身提供一个GregorianCalendar类,一个代表格里高利的实例,通常我们说的公历。Calendar类提供了几个静态方法getInstance()来获取Calender的对象,Calendar也提供大量访问时间。修改时间的方法,void add(int field,int amount)根据日历的规则为给定的日历字段添加或减去指定的时间量;int get(int field)返回指定的日历字段值;int getActualMinimum(int field)返回指定的日历字段可能拥有的最小值。void rool(int field,int amount):与add方法类似,区别在与加上amount后超过该字符段能表示最大的范围时,也不会向上字符进位。void set(int field,int value)将给定的日历字段设置为给定值,void set(int year,int month,int data)设置Calendar对象的年月日三个字符段。void set(int year,int month,int date,int hour,int minute,int second)设置Calendar对象的年月日月份秒6个字符段。

3.java8专门的一个新增的java.time包,该包下有一些常用的类Clock:该类用于获取指定时间的当前的日期时间。Duration:该类代表持续的时间。Instant:代表一个具体的时刻,可以精确到纳秒。LocalDate:该类代表不带时区的时间。LocalDateTime:该类代表不带时区的日期、时间。MonthDay:该类仅表示月日。Year:该类仅表示年。YearMonth:该类仅代表年月。ZonedDatetime:该类代表一个时区化的日期、时间。ZoneId:该类代表一个时区。DayofWeek:这是一个枚举类周一到周六的枚举。Mouth:该类也是一个枚举类,定义一月到十二月的枚举值。

package com.lanou.test;

import java.time.Clock;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZonedDateTime;

public class Demo03 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
         Clock clock=Clock.systemUTC();
         System.out.println(clock.instant());
         System.out.println(clock.millis());
         System.out.println(System.currentTimeMillis());
         Instant instant=Instant.now();
         System.out.println(instant);
         LocalDate localdate=LocalDate.now();
         System.out.println(localdate);
         LocalDateTime ldt=LocalDateTime.now();
         System.out.println(ldt);
         ZonedDateTime zdt=ZonedDateTime.now();
         System.out.println(zdt);
	}

}

 

© 著作权归作者所有

共有 人打赏支持
上一篇: Java的正则表达式
下一篇: Java中常用的类
西红柿的眼泪
粉丝 4
博文 48
码字总数 39713
作品 0
郑州
程序员
私信 提问
Java 8新的时间日期库的20个使用示例

除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使用Java 8的这套API。Java对日期,日历及时间的...

清尘V
2015/03/17
0
0
Java 8时间和日期API 20例

伴随lambda表达式、streams以及一系列小优化,Java 8 推出了全新的日期时间API,在教程中我们将通过一些简单的实例来学习如何使用新API。Java处理日期、日历和时间的方式一直为社区所诟病,将...

黄梦巍
2015/06/19
0
0
赶紧重写 Java 的时间和日期 API 吧!

最近 Java.net 的投票问题是:“在 Java 8 中实现 JSR-310(新的 Java 日期和时间 API)有多么重要? ”在这篇帖子发布的时候,对该话题已经有超过 150 条回应。其中“觉得非常重要”(53%),“...

墙头草
2012/03/27
5K
26
java8中的时间处理0 - api介绍

Java 8 Date Time API是我们java开发一直寻找的时间处理工具。java从一开始设计的时间类就让人头疼,好在现在终于有了java8。 为什么我们需要这套API 只要是有这么几个理由: Java的日期和时...

davelet
2018/02/22
0
0
clojure 新手指南(10):与java交互

clojure是基于jvm的语言,就是说clojure会被编译成字节码被jvm执行。但是clojure能做的可不仅仅是被编译成字节码,它提供了一套API让用户与java交互。因此clojure可以直接调用java世界中那些...

凯奥斯
2013/07/07
0
1

没有更多内容

加载失败,请刷新页面

加载更多

开启genelog

打开genelog genelog 可以记录数据库的操作语句。 首先进入mysql, mysql -u root -p 设置日志位置 set global general_log_file = "/tmp/general.log"; 设置全局global模式 set global gen......

狼王黄师傅
19分钟前
1
0
Java 帝国对 Python 的渗透能成功吗?哈哈

引子 Java 帝国已经成立20多年,经过历代国王的励精图治,可以说是地大物博,码农众多。 可是国王依然不满足,整天想着如何继续开拓疆土, 这一天晚上他又把几个重臣招来商议了。 IO大臣说:...

边鹏_尛爺鑫
今天
7
0
分布式事务解决方案框架(LCN)

什么是XA接口 XA是一个分布式事务协议,由Tuxedo提出。XA中大致分为两部分:事务管理器和本地资源管理器。其中本地资源管理器往往由数据库实现,比如Oracle、DB2这些商业数据库都实现了XA接口...

群星纪元
今天
7
0
linux 操作系统 常用命令和软件安装

1.系统时间更新 ntpdate time.windows.com 2.传送文件 rsync -av /home/data/a.dat -e ssh root@192.168.0.100:/home 3.传送文件夹 scp -r /home/data root@192.168.0.100:/home 4.JDK安装 ......

WJtiny
今天
3
0
pg_lightool基于basebackup的单表恢复和块恢复

开源软件pg_lightool,实现了基于wal日志的块恢复。详情参见博客:https://my.oschina.net/lcc1990/blog/1931485。由于wal日志中FPW的不确定性,它不能作为一个数据库恢复的解决方案。目前对...

movead
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部