Java常用类Date相关知识
Date:
类 Date 表示特定的瞬间,精确到毫秒。
在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。
Date中有很多过时的方法
@Deprecated
过时的,可能在之后的版本删除
构造方法:
Date() :
表示创建对象的系统时间即当前时间(精确到毫秒值),
打印输出其实调用了toString方法。
Date(long date) :
分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
想表示基准时间之前的时间,Date可以传入负数。
补充:最开始毫秒值是用int表示,最大的只能表示到2035年,后来改用long型表示
测试代码:
import java.util.Date; //Date 初始化
public class Demo_01 {
public static void main(String[] args) {
Date d1=new Date();
System.out.println("d1 = " + d1);//d1 = Tue Jul 09 19:50:56 CST 2019
Date d2=new Date(10000000000L);
System.out.println("d2 = " + d2);//d2 = Mon Apr 27 01:46:40 CST 1970
//输出d1,d2其实调用了toString方法
Date d3=new Date(-100000000L);
System.out.println("d3 = " + d3);//d3 = Wed Dec 31 04:13:20 CST 1969 }
}
成员方法:
long getTime() :
返回自基准时间以来此Date所代表的毫秒值。
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
void setTime(long time) :
设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。
测试代码:
import java.util.Date; //Date里的成员方法
public class Demo_02 {
public static void main(String[] args) {
Date date = new Date();
long time=date.getTime();
System.out.println("time = " + time);//time = 1562673980563
Date date1=new Date();
System.out.println("date1 = " + date1);//date1 = Tue Jul 09 20:06:20 CST 2019
date1.setTime(1000000000000L);
System.out.println("date1 = " + date1);//date1 = Sun Sep 09 09:46:40 CST 2001
}
}
日期的格式化和解析:
为了使用更多格式的输出日期,这里使用了DateForat类,注意这是一个抽象类,作用就是格式化日期,不能实例化,需要通过创建子类(SimpleDateFormat)对象来调用方法。
类 DateFormat
概述:DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。
日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本 Date-->String)、解析(文本-> 日期 String -->Date)和标准化。
格式化:日期 --> 文本 Date --> String
解析: 文本 --> 日期 String --> Date
方法:
格式化方法:
String format(Date date)
将一个 Date 格式化为日期/时间字符串。
解析方法:
Date parse(String source)
从给定字符串的开始解析文本,以生成一个日期。
因为DateFormat是抽象类,无法实例化,所以需要创建一个它的子类对象来调用方法。
类 SimpleDateFormat extends DateFormat:
概述: 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
定义了以下模式字母(所有其他字符 'A' 到 'Z' 和 'a' 到 'z' 都被保留):
(这里只写了一些常用的)
y 年
M 月
d 日
H 时
m 分
s 秒(小写)
构造方法摘要 :
SimpleDateFormat() :(不推荐使用)
用默认的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
SimpleDateFormat(String pattern) :
用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
例如: DateDFormat df=new SimpleDateFoemat(”yyyy年MM月dd日 HH:mm:ss“);
注意:用什么模式格式化就要用什么模式解析,不然会出现异常,这里先抛出异常
测试代码:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; //日期格式化
//DateFormat 类
//SimpleDateFormat extends DateFormat类
public class Demo_03 {
public static void main(String[] args) throws ParseException {
Date time=new Date();
SimpleDateFormat sf=new SimpleDateFormat("yyy年MM月dd日 HH:mm:ss");
String s=sf.format(time);
System.out.println("s = " + s);//s = 2019年07月09日 20:30:48
Date d1=sf.parse(s);
System.out.println("d1 = " + d1);
System.out.println(d1.equals(time));//false
Date time1=new Date(0);
Date time2=new Date(0);
System.out.println(time1.equals(time2));//ture } }
练习题:
1,计算来这个世界多少天了
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; //算一下你来到这个世界多少天?
//分析:
// 1. 将字符串解析成Date对象
// 2. 创建一个表示当前时间的对象,计算两者之间的天数
public class HomeWork02 {
public static void main(String[] args) throws ParseException {
String s="1997年02月15日0:0:0";
DateFormat df=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date birthday=df.parse(s);
Date nowaday=new Date();
long days= (nowaday.getTime() - birthday.getTime()) / (1000 * 60 * 60 * 24);
System.out.println(days); }
}
2.制作一个工具类DateUtil:提供两个方法:1.将日期格式化成字符串,2,将字符串解析成日期
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; //制作一个工具类
public class DateUtil {
private DateUtil(){} /**
* 将日期按照给定的格式进行格式化
* @param date 日期
* @param pattern 指定的格式
* @return 格式化后的文本
*/
public String Date2String(Date date, String pattern) {
DateFormat df = new SimpleDateFormat(pattern);
return df.format(date);
} /**
* 将字符串按照给定的格式解析成日期
* @param date 给定的字符串
* @param pattern 给定的模式
* @return 日期对象
* @throws ParseException 如果不能按照给定的格式进行解析,就抛出ParseException
*/
public Date String2Date(String date,String pattern) throws ParseException {
DateFormat df=new SimpleDateFormat(pattern);
return df.parse(date);
}
}
Java常用类Date相关知识的更多相关文章
- Java常用类Date、Calendar、SimpleDateFormat详解
Date类 java.util 包提供了 Date 类来封装当前的日期和时间,Date 类提供两个构造函数来实例化 Date 对象 第一个构造函数使用当前日期和时间来初始化对象 Date( ) 第 ...
- java常用类--系统相关
java提供了System类和Runtime类来与程序的运行平台进行交互. System类 System类代表java程序的运行平台,程序不能创建这个类的对象,System类提供了一些类field和方 ...
- java常用类————Date类
Date类在Java.util包中. 一.功能介绍:创建Date对象,获取时间,格式化输出的时间. 二.对象创建:1.使用Date类无参数的构造方法创建的对象可以获取本地时间.例如: Date now ...
- Java 常用类总结(SE基础)
本篇博客对java常用类相关知识进行了归纳总结,比较详细,适用于学习和复习. 1. 字符串相关的类 1.1 String String是一个final类,代表不可变的字符序列.不可被继承. Strin ...
- Java基础 —— Java常用类
Java常用类: java.lang包: java.lang.Object类: hashcode()方法:返回一段整型的哈希码,代表地址. toString()方法:返回父类名+"@&quo ...
- Java常用类学习笔记总结
Java常用类 java.lang.String类的使用 1.概述 String:字符串,使用一对""引起来表示. 1.String声明为final的,不可被继承 2.String ...
- Java常用类的使用
Java常用类 1. Optional 在我们的开发中,NullPointerException可谓是随时随处可见,为了避免空指针异常,我们常常需要进行 一 些防御式的检查,所以在代码中常常可见if( ...
- Java工具类——数学相关的类
Java工具类--数学相关的类 在上一篇文章中,我们系统学习了 Java 里面的包装类,那么这篇文章,我们就来学习一下Java提供好的类--数学相关的类. 一.数学类介绍 在最早期学习 Java 基础 ...
- Java常用类之要点总结
Java常用类之要点总结
随机推荐
- django5-书籍与出版社关联外键
1.外键相关 一对多的概念 ,这里是一个出版社对应本书籍 ! 设计表使用model models.ForeignKey('关联一', on_delete=models.CASCADE) #给多设置外键 ...
- 从《华为的冬天》到AI的冬天 | 甲子光年
知难不难,惶者生存. 作者 | DougLong 编辑 | 火柴Q.甲小姐 *本文为甲子光年专栏作家DougLong独家稿件.作者为AI从业者.Gary Marcus<Rebooting AI& ...
- flink on yarn模式下两种提交job方式
yarn集群搭建,参见hadoop 完全分布式集群搭建 通过yarn进行资源管理,flink的任务直接提交到hadoop集群 1.hadoop集群启动,yarn需要运行起来.确保配置HADOOP_HO ...
- Xamarin.Forms iOS 真机测试 打包
等着打包过程中记录一下如何打一个debug包到真机上测试的流程1. 需要在XCode中创建一个新的项目,选择iOS==>Single View App,点击Next 2. 在新的弹框中需要App ...
- [20191010]bash行计算器.txt
[20191010]bash行计算器.txt --//写一个bash行计算器,为了避免冲突,函数命名为2个=,1个=感觉不是很好(心里上^_^).--//使用bc计算器,里面函数不能使用圆括号,使用中 ...
- 深浅拷贝及 join set
1.join s="**".join (['风清扬',"独孤求败"] ) join 把里面的东西拿出来,进行拼接 s="_". ...
- jmeter beanshell断言接口自动化实例
一.JMeter介绍 Apache JMeter是一款优秀的开源性能测试工具,在国外无论是在性能测试还是接口测试领域都有着非常高的使用率,但由于本身没有完善的中文文档以及典型开源工具特点(界面不美观) ...
- SpringCloud学习笔记(八、SpringCloud Bus)
目录: 什么是bus消息总栈 如何使用bus消息总栈 什么是bus消息总栈 SpringCloud Bus使用轻量的消息代理连接分布式系统的各个节点,可以用于系统状态变更时的广播(如配置变更)或其它管 ...
- Redis学习笔记(六、哨兵)
目录: 基本概念 环境部署 哨兵原理 哨兵命令 基本概念: 1.什么是哨兵 我们先从字面意思来了解哨兵,哨兵是对执行警戒任务的士兵的统称:在redis中哨兵也是一样,他监控着redis服务器的状态. ...
- MongoDB图形化工具(三)
一.安装 下载地址:https://www.mongodbmanager.com/download 注意:在下载的时候需要对应上自己安装的mongodb版本. 双击安装 选择“Full install ...