一、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. jdk调度任务线程池ScheduledThreadPoolExecutor工作原理解析

    jdk调度任务线程池ScheduledThreadPoolExecutor工作原理解析 在日常开发中存在着调度延时任务.定时任务的需求,而jdk中提供了两种基于内存的任务调度工具,即相对早期的java ...

  2. JavaScript:操作符:操作符的特点

    在JS中,所有的操作符,都同时在做两件事,第一件事是进行计算,第二件事是返回计算的结果,这个结果需要有变量去接收,否则就成为无人认领的数据而被垃圾回收: 在JS中,有很多不常用的操作符以及语法,容易让 ...

  3. Window注册表的学习记录

    注册表的结构: 概述:注册表是一种树状结构,在很早之前是系统的其他配置信息存放的文件,通常以.ini结尾的文件,因为数量太多不方便管理,后来就整合在一起形成了注册表.你可以按住键盘win+r,然后输入 ...

  4. 初识argparse 模块

    # 1引入模块 import argparse # 2建立解析对象 parser = argparse.ArgumentParser() # 3增加属性:给xx实例增加一个aa属性 # xx.add_ ...

  5. .NET性能优化-使用RecyclableMemoryStream替代MemoryStream

    提到MemoryStream大家可能都不陌生,在编写代码中或多或少有使用过:比如Json序列化反序列化.导出PDF/Excel/Word.进行图片或者文字处理等场景.但是如果使用它高频.大数据量处理这 ...

  6. ArcGIS工具 - 批量删除空图层

    为了减少数据的冗余,我们经常需将数据库中的空图层(没有任何记录的要素类或表)删除,删除数据本来是一个很简单的操作,但如果数据量大,则需通过程序来处理.例如,删除成百上千个标准分幅DLG数据库中等高线数 ...

  7. 每个Java程序员都必须知道的四种负载均衡算法

    前言 一般来说,我们在设计系统的时候,为了系统的高扩展性,会尽可能的创建无状态的系统,这样我们就可以采用集群的方式部署,最终很方便的根据需要动态增减服务器数量.但是,要使系统具有更好的可扩展性,除了无 ...

  8. Avalonia 实现动态托盘

    先下载一个gif图片,这里提供一个gif图片示例 在线GIF图片帧拆分工具 - UU在线工具 (uutool.cn) 使用这个网站将gif切成单张图片 创建一个Avalonia MVVM的项目,将图片 ...

  9. 浅谈浏览器端 WebGIS 开发可能会用到的、提升效率的 js 库

    目录 前置说明 1. 与数据格式转换解析相关 1.1. 解析和转换 WKT 几何数据 1.2. 前端直接读取 GeoPackage - @ngageoint/geopackage 1.3. 前端直接读 ...

  10. 快速实现一个简单阉割版的HashMap

    简单实现一个底层数据结构为数组 + 链表的HashMap,不考虑链表长度超过8个时变为红黑树的情况. 1.示例图 2.分析需求 put数据时: key值hash后的索引处没有元素,需要创建链表头节点, ...