Java对日期的处理

来源:互联网 发布:sql注入攻击工具下载 编辑:程序博客网 时间:2024/05/19 03:45

Java对日期的处理

Date类的介绍

java.util.Date是Java中使用最多的类。大家可能对到底使用哪个包中的Date类不是很清楚。从下面的这张类的继承关系图可以看出java.sql.Date是继承java.util.Date的。而且java.sql.Date的大部分方法都是过时的,只有一个setTime()可用。从其中的介绍也可以看出

A class which can consume and produce dates in SQL {@code Date} format. 

这是用于SQL的。以后大家就可以根据应用场景去选择使用哪一个Date。

Date的使用

看一下Date的构造方法。

只有两个构造方法可用。并且通过查看源码知道,空的构造方法内部是调用Date(long),设置参数为System.currentTimeMillis()。

Java.util.Date date=new java.Util.Date();
这样创建一个对象后,我们需要将日期格式化成指定的格式。日期格式化有一个Format的实现类SimpleDateFormat.
这个里面包含了我们需要使用到的所有的常见的样式。

**Symbol可以理解为占位符。比如年份通常为4位,则表示为yyyy

常见的格式:

yyyy-MM-ddyyyy-MM-dd HH:mm:ssyyyy年MM月dd日 HH:mm   

一定要注意大小写。大写与小写的含义不同。

比如MM与mm:一个表示月份,一个表示分钟;
比如HH与hh:一个是24小时制,一个是12小时制。

将时间截格式化成指定格式的日期

//使用给定的日期(年-月-日 (星期))来格式化时间截SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd (E)");Date date=new Date(timestamp);String format = sdf.format(date);

将指定的日期格式化成时间截

一些特殊的需求需要我们将指定的日期格式化成Long型的Date再来计算时间。
既然可以根据指定的格式来格式化Date,那肯定也可以根据指定的日期来格式化成long型Date。可以通过SimpleDateFormat来实现。
比如将一个日期:1980-09-15 13:25:16转成一个long型的date

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); long time = simpleDateFormat.parse("1980-09-15 13:25:16").getTime();

注意这儿有一个隐藏的参数Locale。通常为当前系统默认指定的。
到这儿我们可以处理大部分的日期问题了。

另外一个日期处理的类Calendar

Calendar

这是一个让我们得到日历型日期的类。比如计算这是一年中的哪一天,哪个周,哪一月。通过Calendar类的常量可以获得。需要注意的是月份是从0开始的。

Calender类使用实例

Calendar c1 = Calendar.getInstance();c1.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));c1.setTimeInMillis(start);int y1 = 0;int M1 = 0;int dM1 = 0;y1 = c1.get(Calendar.YEAR);M1 = c1.get(Calendar.MONTH) + 1;dM1 = c1.get(Calendar.DAY_OF_MONTH);
1 0
原创粉丝点击