Date类(java.util.Date)

时间原点:1970年1月1日 8点0分0秒。

创建日期对象:

package blog;

import java.util.Date;

public class Datetest01 {
public static void main(String[] args) {
Date nowDate = new Date();
System.out.println("当前时间是:"+nowDate);
Date date1 = new Date(10000);
Date date2 = new Date(-10000);
System.out.println("以5000定义的时间为:"+date1);
System.out.println("以5000定义的时间为:"+date2);
}
}

从上面的例子我们可以发现:当直接new Date()时得到的其实是现在的时间。然后当以参数为10000或者-10000时,它是以原点为基准点以毫秒为单位取计算然后得到时间。

下面是Date源码,我们其实也可以从注释说明中发现他们两者的用法的不同之处。

/**
* Allocates a <code>Date</code> object and initializes it so that
* it represents the time at which it was allocated, measured to the
* nearest millisecond.
*
* @see java.lang.System#currentTimeMillis()
*/
public Date() {
this(System.currentTimeMillis());
} /**
* Allocates a <code>Date</code> object and initializes it to
* represent the specified number of milliseconds since the
* standard base time known as "the epoch", namely January 1,
* 1970, 00:00:00 GMT.
*
* @param date the milliseconds since January 1, 1970, 00:00:00 GMT.
* @see java.lang.System#currentTimeMillis()
*/
public Date(long date) {
fastTime = date;
}

getTime()

在上面的测试代码最后加入两行:

System.out.println("使用getTime():"+nowDate.getTime());
System.out.println("使用getTime():"+date1.getTime());

我们发现:getTime()获取的是日期距日期原点的毫秒数

日期格式转换

y 代表年
M 代表月
d 代表日
H 代表24进制的小时
h 代表12进制的小时
m 代表分钟
s 代表秒
S 代表毫秒

日期转字符串:

package blog;

import java.text.SimpleDateFormat;
import java.util.Date; public class DateTest02 {
public static void main(String[] args) {
SimpleDateFormat formate1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat formate2 = new SimpleDateFormat("yyyy/MM/dd HH/mm/ss SSS");
SimpleDateFormat formate3 = new SimpleDateFormat("HH:mm:ss yyyy-MM-dd");
Date date = new Date();
String s1 = formate1.format(date);
String s2 = formate2.format(date);
String s3 = formate3.format(date);
System.out.println("formate1格式下时间为:"+s1);
System.out.println("formate2格式下时间为:"+s2);
System.out.println("formate3格式下时间为:"+s3);
}
}

字符串转日期

package blog;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; public class Datetest03 {
public static void main(String[] args) {
SimpleDateFormat formate1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat formate2 = new SimpleDateFormat("yyyy/MM/dd HH/mm/ss SSS");
SimpleDateFormat formate3 = new SimpleDateFormat("HH:mm:ss yyyy-MM-dd");
String str1 = "2019-4-20 20:49:00";
String str2 = "2019/4/20 20/49/00 520";
String str3 = "20:49:00 2019-4-20";
try {
Date date1 = formate1.parse(str1);
Date date2 = formate2.parse(str2);
Date date3 = formate3.parse(str3);
System.out.println("时间格式1为:"+date1);
System.out.println("时间格式2为:"+date2);
System.out.println("时间格式3为:"+date3);
} catch (ParseException e) {
e.printStackTrace();
} }
}

---恢复内容结束---

---恢复内容结束---

Java中的日期的更多相关文章

  1. Delphi与Java中的日期互换

    在最近做的一个项目中用到了Java和Delphi,发现它们不能正确读取对方的日期类型,如在Java中写入一个值为“2007-12-1”的日期值,通过Delphi读取却不是这个值了.通过查阅资料,发现两 ...

  2. Java中的日期操作

    在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception { SimpleDateFormat sdf = n ...

  3. 填坑:Java 中的日期转换

    我们之前讨论过时间,在Java 中有一些方法会出现横线?比如Date 过期方法. 参考文章:知识点:java一些方法会有横线?以Date 过期方法为例 Java中的日期和时间处理方法 Date类(官方 ...

  4. 第七节:详细讲解Java中的日期,java.util.date

    前言 大家好,给大家带来详细讲解Java中的日期,java.util.date的概述,希望你们喜欢 类Date Java.lang.Object->java.util.Date public c ...

  5. Java中的日期和时间

    Java中的日期和时间 Java在java.util包中提供了Date类,这个类封装了当前的日期和时间. Date类支持两种构造函数.第一个构造函数初始化对象的当前日期和时间. Date() 下面的构 ...

  6. Java中的日期操作 分类: B1_JAVA 2015-02-16 17:55 6014人阅读 评论(0) 收藏

    在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception { SimpleDateFormat sdf = n ...

  7. Java中的日期表示类

    一.概述 Java中的日期类设计的比较失败,刚开始使用Date来计算时间,后来大部分Date类的方法都过时了:想用Calendar类代替Date类,然而Calendar类也是不尽如人意.下面简单介绍下 ...

  8. java中获取日期和时间的方法总结

    1.获取当前时间,和某个时间进行比较.此时主要拿long型的时间值. 方法如下:  要使用 java.util.Date .获取当前时间的代码如下 Date date = new Date(); da ...

  9. Java中的日期处理类

    在Java中可以使用Date类和Calendar类来处理日期 但是Date类很多方法都过时了,推荐使用Canlendar类来处理日期,并对日期的格式化做了介绍.下面的部分将会逐一介绍 Date类 Ja ...

  10. java中的日期处理

    学习Java日期处理,看见这一篇比较详细,转载之. 转自:http://www.cnblogs.com/hqr9313/archive/2012/04/19/2458221.html   时间日期1) ...

随机推荐

  1. 使用HTML的基本结构创建网页

    1.       网页的扩展名--html或htm 2.       如何新建网页? 步骤1: 在电脑的空白处,右键选择-->新建--文本文档 步骤2: 把txt的扩展名,改成html或htm, ...

  2. Redis使用RDB持久化和AOF持久化的区别 - 小白之所见

  3. SpringBoot 完整学习笔记免费分享

    从0到进阶,完全系统性的学习笔记 每次我都会反复拿来观看,因为我们总会有遗漏忘记的地方,但是笔记不会. 希望大家能好好利用它,以下是笔记截图! 以上只是其中的一项部分,这份笔记可以说含金量超高,绝对会 ...

  4. 爬虫之Selenium

    简介 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如 ...

  5. shell脚本获取随机数

    $RANDOM系统变量 在bash中,支持$RANDOM系统变量,范围是 [0, 32767] #!/bin/bash set -e randN() { local N=$1 echo $(($RAN ...

  6. BUUCTF-misc九连环 详解

    这个没什么玄学,我们解压出来一张照片,放到hxd中搂一眼,最后结尾的那几行中看到了zip压缩包的结尾标识符,难道这里面还有压缩包,于是我们就formostlrb 果然有图片有压缩包 我们打开压缩包看到 ...

  7. lvs搭建dr负载均衡集群

    一,查看本地centos的版本: [root@localhost lib]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) ...

  8. fedora30平台安装docker 19.03

    一,下载docker 1,说明:docker的打包对于fedora的支持很及时, 所以在fedora 30/31上都可以直接使用官方的rpm包 下载地址: https://download.docke ...

  9. python并发编程之多进程(实践篇) 转

    一 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程.Python提供了multiproce ...

  10. matplotlib 饼状图

    import matplotlib.pyplot as plt import matplotlib as mpl # 支持中文 plt.rcParams['font.sans-serif'] = [' ...