一、概述

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

1、Date类

Date类的构造方法有两个,public Date()和public Date(long date).可以用来表示当前日期,或者将长整型数据表示成时间。第一个勉强可以用下,用来表示当前时间,第二个试问谁能记得住那么一大串的时间值呢?看下示例吧:

       //参数表示1970-01-01 00:00:00到指定时间的毫秒数
Date date1 = new Date(14686531L);
System.out.println(date1);
Date date2= new Date();
System.out.println(date2);

输出的日期为:

Thu Jan 01 12:04:46 GMT+08:00 1970
Sat Apr 20 08:43:34 GMT+08:00 2019

其中第一个参数表示:1970-01-01 00:00:00到指定时间的毫秒数

第二个表示:当前时间。

使用Date将字符串转换为日期格式:Date的年月日是在1900-01的基础上来累加。因此,要现将字符串中的年月日切分出来,然后再使用Date表示。

示例如下:

        //2. 出生日期
//2000-12-16->转化为date对象
//在1900-01的基础上来累加
String str = "2000-12-16";
//现将年月日切分出来
String[] arr = str.split("-");
int year = Integer.parseInt(arr[0]) - 1900;
int month = Integer.parseInt(arr[1]) - 1;
int day = Integer.parseInt(arr[2]);
//Date date = new Date(2000,12,16);
//如果某个类、方法、属性出现了删除线,并且有提示需要进行警告压制
//压制内容deprecation,表示这个类、方法、属性已过时
//已过时:指当前代码依然可以用,但是不推荐使用,在后续迭代版本中可能会被抛弃
@SuppressWarnings("deprecation")
Date date = new Date(year, month, day);
System.out.println(date);

二、使用DateFormat类的子类(SimpleDateFormat类)表示

因为使用Date类与字符串时间相互转化十分困难,因此,考虑Date类的其他子类。DateFormat是日期/时间格式化子类的抽象类,它与以语言无关的方式格式化并解析日期或时间,是抽象类,所以使用其子类SimpleDateFormat实现日期和字符串的相互转换。

public static void main(String[] args) throws Exception {

        // 2000-12-16
// 2000/12/16
// 2000.12.16
// 12/16/2000
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 将字符串转化为日期
Date date = sdf.parse("2000-12-16 16:52:39");
System.out.println(date); Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String str = sdf.format(date);
System.out.println(str);
}

三、Calendar类

java开发Calendar的目的是为了替换Date类,但是,该类设计的也是相当失败。仅有几个方法还值得使用一下。Calendar类是一个抽象类,不过提供了一个getInstance方法可以生成一个实例对象。通过该对象可以设置当前时间和获取日期。

public static void main(String[] args) {

        // 创建Calendar对象
Calendar c = Calendar.getInstance();
System.out.println(c); // 获取Hour属性的值
int hour = c.get(Calendar.HOUR);
System.out.println(hour); c.set(Calendar.HOUR, 12); // 获取Date对象的方法
Date d = c.getTime();
System.out.println(d);
}

Java中的日期表示类的更多相关文章

  1. Java中的日期处理类

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

  2. Java中的日期操作

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

  3. Java中Date和Calender类的使用方法

    查看文章     Java中Date和Calender类的使用方法 2009-10-04 20:49 Date和Calendar是Java类库里提供对时间进行处理的类,由于日期在商业逻辑的应用中占据着 ...

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

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

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

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

  6. Java中的日期和时间

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

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

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

  8. JAVA中封装JSONUtils工具类及使用

    在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...

  9. Delphi与Java中的日期互换

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

随机推荐

  1. Mybatis框架模糊查询

    一.ISmbmsUserDao层 //根据姓名模糊查询 public List<Smbms> getUser(); //多条件查询 public List<Smbms> get ...

  2. 常用WinAPI函数整理------------转载

    常用WinAPI函数整理原创 玩撕你 发布于2019-09-04 20:06:55 阅读数 101 收藏展开 之前的博客写了很多关于Windows编程的内容,在Windows环境下的黑客必须熟练掌握底 ...

  3. java并发:初探用户线程和守护线程

    用户线程和守护线程 用户线程 用户线程执行完,jvm退出.守护线程还是可以跑的 /** * A <i>thread</i> is a thread of execution i ...

  4. springboot打war包上传到阿里云的Linux服务器

    下面的每一步应该都必不可少: 1.启动类 继承这个类,并且重新configure这个方法,return builder.sources(Code007Application.class); 2.pom ...

  5. 创建Git本地仓库

    一.获取Git仓库 安装好Git后即可创建Git本地仓库,开始项目的版本管理.有两种方法取得Git项目仓库:1.在现有项目或目录下导入所有文件到Git中:2.从一个服务器克隆一个现有的Git仓库. 1 ...

  6. vue中使用矢量图

    1.打开矢量图库,将需要的图表添加至购物车 2.将购物车的图标添加到一个项目中(便于后期增加更新)并下载至本地 3.将这四个文件及iconfont.css添加至项目的assets中 4.打开iconf ...

  7. pip 安装源

    pip 安装源 介绍 1.采用国内源,加速下载模块的速度 2.常用pip源: -- 豆瓣:https://pypi.douban.com/simple -- 阿里:https://mirrors.al ...

  8. 机器学习(ML)八之正向传播、反向传播和计算图,及数值稳定性和模型初始化

    正向传播 正向传播的计算图 通常绘制计算图来可视化运算符和变量在计算中的依赖关系.下图绘制了本节中样例模型正向传播的计算图,其中左下角是输入,右上角是输出.可以看到,图中箭头方向大多是向右和向上,其中 ...

  9. Django null=True和blank=True的区别

    今天遇到一个问题: 在restframework框架中开发,数据库了创建了一个model的属性如下所示: remarks = models.CharField(verbose_name=u" ...

  10. 4 GC算法与种类