[Java]常用日期处理

最近在复习Java基础,发现Java中关于日期处理的类比较杂乱,新手常常无法找到合适的方法。于是决定写一篇博文介绍一下Java常用的日期处理。

Java中常用的日期相关类以及它们之间的关系如下图所示,其中中间的Date是指java.util.Date,左下的Date指java.sql.Date。这几个类几乎包含了所有常用日期处理的方法,下边将分别详细介绍一下它们。

1.Date(java.util.Date)

Date类应该是Java中最早用于日期处理的类了,它的无参构造函数可以创建一个表示当前时间的对象,其他构造函数还支持通过将int类型的年月日或String类型的日期构造成日期对象,如下面代码所示:

//通过默认构造函数创建当前时间对象
Date d = new Date();
//通过int类型的年月日创建对象
Date d = new Date(2014, 7, 30);
//通过String类型的日期创建对象
Date d = new Date("Sat 30 Oct 2014 14:59:00");

不过很遗憾的是,下面两种方法都在Java1.1版本被Calendar的set方法和DateFormat的parse方法所替代了,并且Date类中的所有的日期修改方法也被Calendar中的对应方法所替代,这说明Date类将不再用于日期修改,仅作为一个封装日期数据的类所提供。

2.Date(java.sql.Date)、Time和Timestamp

这三个Date类的子类在数据库操作中经常会碰到,分别被用来表示日期(年月日)、时间(时分秒)以及日期时间(年月日时分秒)。它们的作用一般用于保存从数据库中取出的日期数据,在此不多做介绍了。

3.Calendar

由于Date类对国际化支持的并不好,在Java1.1版本中推出了Calendar类,中文翻译就是日历的意思。Calendar是一个抽象类,我们需要使用它的静态方法getInstance获得一个表示当前时间的其实现类的实例,如下面代码所示:

//通过getInstance获得Calendar实例
Calendar rightNow = Calendar.getInstance();

Calendar类用于日期处理提供了相当多的方法和静态变量,它的get和set方法需要通过字段设置和取出对应的值,如:

//通过set方法设置需要的时间
rightNow.set(Calendar.HOUR_OF_DAY, 15);
//通过get方法获得设置的时间
int nowHour = rightNow.get(Calendar.HOUR_OF_DAY);

此外Calendar还提供对时间进行加减的方法add,如:

//在当前时间的基础上增加15分钟
rightNow.add(Calendar.MINUTE, 15);

Calendar还有许多其它可以对日期进行修改的函数,可以查询API文档,本文就不一一详述了。

4.DateFormat

DateFormat类是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。在实际使用中我们通常使用它的子类SimpleDateFormat。

SimpleDateFormat的构造函数可以指定一个日期格式,然后按照这个日期格式去解析或输出日期对象,如:

//创建一个SimpleDateFormat对象,指定日期格式为年-月-日。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//解析日期
Date d = sdf.parse("2014-8-30");
//创建另一个SimpleDateFormat,指定格式为xxxx年xx月xx日。
sdf = new SimpleDateFormat("yyyy年MM月dd日");
//转换日期
String s = sdf.format(d);

4.其他

TimeZone类表示时区偏移量,由于使用较少本文就不详细说明了,有兴趣可以查询API文档。

System类有个currentTimeMillis方法,可以返回以毫秒为单位的当前时间,一般用于计算程序时间差。

5.总结

需要保存日期时可以使用java.util.Date类以及它的子类Java.sql.Date类、Time类和Timestamp类。

需要更改日期时,推荐使用Calendar类。

需要格式化解析或输出日期时,推荐使用SimpleDateFormat类。

时间: 2024-12-28 00:36:38

[Java]常用日期处理的相关文章

Java常用日期、时间格式化转换符

常用日期.时间格式化转换符 转换符 说明 %te 一年中的某一天 %tb 指定语言环境的月份简称 %tB 指定语言环境的月份全称 %tA 指定语言环境的星期几全称 %ta 指定语言环境的星期几简称 %tc 包括全部日期和时间信息 %tY 4位年份 %tj 一年中的第几天 %tm 月份 %td 一个月中的第几天 %ty 2位年份 %tH 2位数字的24时制的小时 %tI 2位数字的12时制的小时 %tk 2位数字的24时制的小时 %tl 2位数字的12时制的小时 %tM 2位数字的分钟 %tS 2

java 常用日期函数总结

计算某一月份的最大天数 Java代码   Calendar time=Calendar.getInstance(); //time.clear(); //time.set(Calendar.YEAR,year); //time.set(Calendar.MONTH,month-1); //注意,Calendar对象默认一月为0 int day=time.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天数 注:在使用set方法之前,必须先clear一下

java常用日期类型转换

import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import org.apache.commons.lang.StringUtils; import org.joda.time.DateTime

java常用日期操作方法

package com.wujiangpo.test.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.regex.Pattern; public class DateUtil { private

Java常用日期操作详解

Date类型大多数时间分量计算方法已经被Calendar取代 Date常用方法setTime getTime() new Date();默认获取当前的时间 SimpleDateFormat用来格式化和解析日期的具体类 匹配日期的字符串 y–>年 M–>月 d–>日 E–>星期 a–>上下午 H–>小时(24小时制) h–>小时(12小时制) m–>分 s–>秒 格式化Date返回值为String SimpleDateFormat sdf = new S

java 常用按 开始日期 和 结束日期 查询处理

java  常用按 开始日期 和 结束日期 查询处理 package com.crm.mess.util; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateUtil { // @Test public static String SEDate(String start, S

java 常用工具

System:类中的属性方法都是静态的.无法实例化 err:"标准"错误输出流 in:"标准"输入流 out:"标准"输出流 常见方法: long currentTimeMillis();获取当前时间的毫秒值 Properties    getProperties(); 获取系统属性 Properties集合中存储的都是String类型的键和值. Runtime:没有构造方法摘要,说明该类不可以创建对象. 方法又是非静态,说明该类提供静态返回该类

java 常用Date操作

[java] view plain copy 获取年月日时分秒: [java] view plain copy package com.util; import java.text.DateFormat; import java.util.Calendar; import java.util.Date; public class Test { public void getTimeByDate(){ Date date = new Date(); DateFormat df1 = DateFor

Java基础 —— Java常用类

Java常用类: java.lang包: java.lang.Object类: hashcode()方法:返回一段整型的哈希码,代表地址. toString()方法:返回父类名+"@"+哈希码(一般用于覆盖). equals()方法:返回"=="操作的布尔值(一般用于覆盖). finalize()方法:用于对象的销毁(不受人为控制,由JVM调用,遵从垃圾回收机制). clone()方法:用于对象之间的拷贝(深拷贝). getClass()方法:返回对象的字节码文件对