一、Date 类

​ 在 Java 里提供有一个 java.util.Date 类,可以直接获取当前的日期时间。

范例:获取当前的日期时间

public class TestDemo {
public static void main(String args[]) {
Date date = new Date();
System.out.println(date);
}
}

Date 类定义了如下几个重要方法:

1.1 无参构造:public Date()

1.2 有参构造:public Date(long date)

将 long 型转换成 Date型,同样的就有Date装换成 long;

1.3 Date转换为long:public long getTime()

//时间戳

范例:Date 与 long 间的转换

public class TestDemo {
public static void main(String args[]) {
long cur = System.currentTimeMillis();
// long 转 Date
Date date = new Date(cur);
System.out.println("Date 类型日期:" + date);
// Date 转 long
System.out.println("long 类型日期:" + date.getTime());
}
}

二、String 和 Date 转换

​ java.text 是一个专门实现国际化程序的开发包,java.text.SimpleDateFormat 类是一个专门处理格式的类,将 Date 型的对象转换为 String 型的形式显示。主要使用的是以下方法:

2.1 构造方法

public SimpleDateFormat(String pattern) // 需要传递转换格式

2.2 将 Date 转换为 String

public final String format(Date date)

2.3 将 String 转换为 Date

public Date parse(String source) throws ParseException

2.4 常见的用String 表示日期的格式

​ 现在关键就在于转换格式上,常见的转换单位:年(yyyy)月(MM)日(dd)时(HH)分(mm)秒(ss)毫秒(SSS)。

范例:将日期格式化显示(将 Date变成 String)

public class TestDemo {
public static void main(String args[]) throws ParseException {
Date date = new Date();
System.out.println(date); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
// Date 转 String
String sDate = sdf.format(date);
System.out.println(sDate); String birthday = "1995-01-11 20:22:34.342";
// String 转 Date
date = sdf.parse(birthday);
System.out.println(date);
}
}

​ 注意,在将字符串转换为Date类时,如果日期给出的月不对,那么会自动进行进位;如果与转换的格式不符合,那么就会出现异常。

三、Calendar 类

Date 类 和 SimpleDateFormat 类两个往往是一起使用的,Calendar 这个类往往是进行一些简单计算。

范例:取得当前的日期时间

Calendar 提供了一个方法:int get(int field),该方法可以获取指定时间分量所对应的值

public class TestDemo {
public static void main(String args[]) throws ParseException {
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1; // 月份从0开始
int day = cal.get(Calendar.DAY_OF_MONTH);
System.out.println(year + "-" + month + "-" + day);
}
}

​ 如果是日期计算,Calendar 要比 Date 省事。如果要使用Date 进行天的计算,需要使用 long 完成了。

四、总结

日期型使用 java.util.Date 表示;​ 

Date 与 String 类直接的转换依靠的是 SimpleDateFormat 里 format() 和 parse() 方法;

​String 与 基本类型之间的转换依靠的是 包装类 与 String.valueOf() 方法;

​long 与 Date 转换依靠的是 Date 类提供的构造以及 getTime() 方法。

【5】java之日期处理类的更多相关文章

  1. JAVA 8 日期工具类

    JAVA 8 日期工具类 主题描述 JAVA中日期时间的历史 代码成果 主题描述 JAVA的日期时间一直比较混乱,本来以为joda会是巅峰,但是JAVA 8改变了我的思想.但是即便在JAVA 8面前, ...

  2. 菜鸡的Java笔记 日期操作类

    日期操作类        Date 类与 long 数据类型的转换        SimpleDateFormat 类的使用        Calendar 类的使用                如 ...

  3. Java案例——日期工具类

    需求:定义一个日期工具类,包含两个方法,按日期转化成指定格式的字符串,把字符串解析为指定格式的日期 然后定义一个测试类测试 分析: 1.定义一个日期工具类 2.定义一个方法dateToString,用 ...

  4. java DateTimeUtil 日期工具类

    package com.sicdt.library.core.utils; import java.sql.Timestamp; import java.text.DateFormat; import ...

  5. Java 之 日期时间类

    一.Date类 1.概述 java.util.Date 类 表示特定的瞬间,精确到毫秒. 2.构造方法 public Date():分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒) p ...

  6. Java的日期工具类

    package com.tech.jin.util; import java.text.DateFormat; import java.text.ParseException; import java ...

  7. Java对日期Date类进行加减运算,年份加减,月份加减

      import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date; public class Da ...

  8. JAVA时间日期处理类,主要用来遍历两个日期之间的每一天。

    /** * * 文 件 名: AccountDate.java * * 创建时间: 2008-11-18 * * Email : **@163.com */ import java.text.Deci ...

  9. Java对日期Date类进行日期加减运算,年份加减,月份加减

    package com.cy; import java.security.InvalidParameterException; import java.text.ParseException; imp ...

  10. 【转】Java对日期Date类进行加减运算,年份加减,月份加减

    import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date; public class Date ...

随机推荐

  1. 现代 CSS 高阶技巧,完美的波浪进度条效果!

    本文是 CSS Houdini 之 CSS Painting API 系列第三篇. 现代 CSS 之高阶图片渐隐消失术 现代 CSS 高阶技巧,像 Canvas 一样自由绘图构建样式! 在上两篇中,我 ...

  2. uniapp中封装一个弹框组件

    第一步:在components下创建 popup.vue子组件: popup.vue中 <template> <view> <view class="popus ...

  3. php的可变变量覆盖漏洞

    题目如下: <?php highlight_file('source.txt'); echo "<br><br>"; $flag = 'xxxxxxx ...

  4. 【转载】SQL 2012以上版本分页查询更简单

    2012以上版本分页查询更简单 注意:以下都是先执行排序,再取行数据 select* from t_workers order by worker_id desc offset 3 rows   -- ...

  5. java中json字符串与实体类对象相互转换

    1.问题描述 有一个需求是这样的,把实体类转为Json字符串存入redis中,然后再把redis中存放的实体类Json字符串插入数据库中.因此需要涉及到json字符串与实体类对象的相互转换. 2.产生 ...

  6. Zookeeper详解(02) - zookeeper安装部署-单机模式-集群模式

    Zookeeper详解(02) - zookeeper安装部署-单机模式-集群模式 安装包下载 官网首页:https://zookeeper.apache.org/ 历史版本下载地址:http://a ...

  7. 题解P1559 运动员最佳匹配问题

    简要题意 给出 \(n\) 个白色顶点,\(n\) 个黑色顶点.白色顶点 \(i\) 和黑色顶点 \(j\) 之间的边的权为 \(P_{i,j}\cdot Q_{j,i}\),求二分图最大权匹配. 思 ...

  8. 学习ASP.NET Core Blazor编程系列二十一——数据刷新

    学习ASP.NET Core Blazor编程系列文章之目录 学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应 ...

  9. QtQuick使用MediaPlayer抓取摄像头影响报错Error: "Your GStreamer installation is missing a plug-in."

    环境:ubuntu18.04 Qt5.9.5 描述:项目需要使用qtquick作为显示界面用于播放从网络摄像头抓取的影像,海康网络摄像头,摄像头源协议使用的是rtsp,影像数据格式为x-h264,但在 ...

  10. drf-day4——序列化类常用字段和字段参数、序列化类source用法、序列化类定制字段返回内容的两种方式、序列化类的多表关联反序列化保存、反序列化字段校验、ModelSerializer的使用

    目录 一.序列化类常用字段和字段参数(了解) 1.1 常用字段类 1.2 常用字段参数 选项参数: 通用参数: 重点 二.序列化高级用法之source(了解) 2.1 序列化定制字段名字 三.序列化高 ...