深圳Java培训
达内深圳宝安中心

136-3244-2201

热门课程

几种JAVA日期的常见操作 (上)

  • 时间:2015-12-25
  • 发布:深圳Java培训
  • 来源:达内新闻

Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,

1. 日期取值

几种JAVA日期的常见操作 (上)

在旧版本 JDK 的时代,有不少代码中日期取值利用了 java.util.Date 类,但是由于 Date 类不便于实现国际化,其实从 JDK1.1 开始,就更推荐使用 java.util.Calendar 类进行时间和日期方面的处理。这里便不介绍 Date 类的操作,让我们直奔主题吧,如何利用 Calendar 类取得现在的日期时间。

由于 Calendar 的构造器方法被 protected 修饰,所以我们会通过 API 中提供的 getInstance 方法来创建 Calendar 对象。

//有多个重载方法创建 Calendar 对象

Calendar now = Calendar.getInstance(); //默认

//指定时区和地区,也可以只输入其中一个参数

Calendar now = Calendar.getInstance(timeZone, locale);

然后我们就可以通过该对象取得当前的各种时间参数了。

int year = now.get(Calendar.YEAR); //2015,当前年份

int month = now.get(Calendar.MONTH) + 1; //12,当前月,注意加 1

int day = now.get(Calendar.DATE); //23,当前日

Date date = now.getTime(); //直接取得一个 Date 类型的日期

要取得其他类型的时间数据仅需修改 now.get() 内的参数,除了以上三种参数,其他常用参数如下:

Calendar.DAY_OF_MONTH:日期,和 Calendar.DATE 相同

Calendar.HOUR:12 小时制的小时数

Calendar.HOUR_OF_DAY:24小时制的小时数

Calendar.MINUTE:分钟

Calendar.SECOND:秒

Calendar.DAY_OF_WEEK:周几

除了取得时间数据,我们也可以通过 Calendar 对象设置各种时间参数。

//只设定某个字段的值

// public final void set(int field, int value)

now.set(Calendar.YEAR, 2016);

//设定年月日或者年月日时分或年月日时分秒

// public final void set(int year, int month, int date[, int hourOfDay, int minute, int second])

now.set(2016, 1, 1[, 11, 1, 1]);

//直接传入一个 Date 类型的日期

// public final void setTime(Date date)

now.set(date);

注意:

当设置了时间参数后,其他相关的数值都会重新计算,例如当你把日期设为 11 号后,周几就会作对应变化。

获得的月份加 1 才是实际月份。

在 Calendar 类中,周日是 1,周一是 2,以此类推。

2. 日期转换

聊完日期取值,接下来聊聊日期转换,转换一般是 Date 型日期与 String 型字符串之间的相互转换,我主要利用 java.text.SimpleDateFormat 进行转换操作。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

try {

//日期转字符串

Calendar calendar = Calendar.getInstance();

Date date = calendar.getTime();

String dateStringParse = sdf.format(date);

//字符串转日期

String dateString = "2016-01-01 11:11:11";

Date dateParse = sdf.parse(dateString);

} catch (ParseException e) {

e.printStackTrace();

}

注意:

创建 SimpleDateFormat 对象时必须指定转换格式。

转换格式区分大小写,yyyy 代表年份,MM 代表月份,dd 代表日期,HH 代表 24 进制的小时,hh 代表 12 进制的小时,mm 代表分钟,ss 代表秒。

更多内容请点击【深圳JAVA培训】

上一篇:学习总结——Java Executor的框架
下一篇:几种JAVA日期的常见操作 (下)

预计发布的Java 9中,很令人期待的是什么?

【深圳JAVA培训】世界十类很急需IT人才

JAVA——很吃香的编程语言

为什么程序员是很有钱的一批人?

选择城市和中心
贵州省

广西省

海南省