一、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. 【FAQ】申请Health Kit权限的常见问题及解答

    华为运动健康服务(HUAWEI Health Kit)提供原子化数据开放,用户数据被授权获取后,应用可通过接口访问运动健康数据,对相关数据进行增.删.改.查等操作.这篇文章汇总了申请开通Health ...

  2. .Net 6 使用 Consul 实现服务注册与发现 看这篇就够了

    前言 在这几年的工作中,也经历过几个微服务项目,大多数都上了k8s,基本上都看不到Consul的身影,所以在工作之余折腾了下Consul,作为个人来讲还是得学习下,所以也就顺便通过文章来记录下学习过程 ...

  3. 计算1+2!+3!+...+n!的和

    计算1+2!+3!+...+n!的和 Code 点击查看代码 #include<iostream> #include<vector> using namespace std; ...

  4. elasticsearch实现基于拼音搜索

    目录 1.背景 2.安装拼音分词器 3.拼音分词器提供的功能 4.简单测试一下拼音分词器 4.1 dsl 4.2 运行结果 5.es中分词器的组成 6.自定义一个分词器实现拼音和中文的搜索 1.创建m ...

  5. for循环 rang方法

    今日内容 while循环补充说明 1.死循环 真正的死循环是一旦执行 cpu的功耗急剧上升 直到系统采取紧急措施 2.嵌套及全局标志位 强调: 一个break只能结束他所在那一层的循环 如果想一次性结 ...

  6. 前端Linux部署命令与流程记录

    以前写过一篇在Linux上从零开始部署前后端分离的Vue+Spring boot项目,但那时候是部署自己的个人项目,磕磕绊绊地把问题解决了,后来在公司有了几次应用到实际生产环境的经验,发现还有很多可以 ...

  7. Blazor Pdf Reader PDF阅读器 组件 更新

    Blazor Pdf Reader PDF阅读器 组件 https://www.nuget.org/packages/BootstrapBlazor.PdfReader#readme-body-tab ...

  8. echart大坑总结~~echarts呈现的数据刷新不完全/echarts画图时tooltip不会更新

    谨以此文记录在使用echarts中遇到的各种大坑或者小坑,陆续更新加入新坑 欢迎朋友们一起提坑,我们势必绕过它们,愿我们永不再入坑~ 坑一:echarts图表重新赋值数据,图表显示会存在一部分原来的数 ...

  9. 电脑微信小程序抓包

    电脑微信小程序抓包 在渗透的过程中,对于网站找不出什么漏洞的时候我们就可以,对目标进行小程序和公众号漏洞的发掘 0x01 设置微信代理使用Burp抓取数据包 发现我们抓取的数据包很多都是乱码 Prox ...

  10. finally代码块-多异常的捕获处理

    finally代码块 finally :有一些特定的代码无论异常是否发生,都需要执行.另外,因为异常会引发程序跳转,导致有些语句执行不到.而finally就是解决这个问题的,在finally代码块中存 ...