Java中时间日期

  本人之前做的是.net开发,在.net中对于时间的处理很方便,一个Date类就基本搞定了对时间操作的基本处理。但是在Java中就不太一样了,虽然Java中也有Date类,但Date多数用于获取或者格式化时间输出,如果涉及到对时间的自定义格式化输出或者对时间日期\时间的加减,就要配合其他类一起完成。

一、时间的比较

  Date类在Java中属于元老级,但由于前期对Date类的设计相当糟糕,Java官方都建议不要使用Date类。实际上Date中存的是1970年1月1日起的毫秒数。

//Date 常用于粗略的获取时间字符串和比较
Date date = new Date();
date.after(Date date)  //比较时间
date.before(Date date) //比较时间
date.toString() //粗略的获取时间字符串

二、格式化时间

  如果想要更个性化的时间字符串的话就需要其他的类做辅助,SimpleDateFormat 类。

Date dNow = new Date( );
SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
System.out.println("Current Date: " + ft.format(dNow));
//输出:Current Date: Wed 2016.11.09 at 08:23:19 AM UTC
字母 描述 示例
G 纪元标记 AD
y 四位年份 2001
M 月份 July or 07
d 一个月的日期 10
h A.M./P.M. (1~12)格式小时 12
H 一天中的小时 (0~23) 22
m 分钟数 30
s 秒数 55
S 毫秒数 234
E 星期几 Tuesday
D 一年中的日子 360
F 一个月中第几周的周几 2 (second Wed. in July)
w 一年中第几周 40
W 一个月中第几周 1
a A.M./P.M. 标记 PM
k 一天中的小时(1~24) 24
K A.M./P.M. (0~11)格式小时 10
z 时区 Eastern Standard Time
文字定界符 Delimiter
单引号 `

三、时间的操作

  项目中对时间操作最多的就是时间的加减,加一天减一天或者指定某个特定的时间。Calendar类。
  创建一个代表系统当前日期的Calendar对象

Calendar c = Calendar.getInstance();//默认是当前日期

  创建一个指定日期的Calendar对象
  使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成。

//创建一个代表2009年6月12日的Calendar对象
Calendar c1 = Calendar.getInstance();
c1.set(2009, 6 - 1, 12);
//或者设置
c1.set(Calendar.DATE,10);

  时间上的加减

c1.add(Calendar.DATE, 10);

  虽然Date不推荐再使用,但是某些环境下还是需要Date的,Date需要与Calendar进行转换。

Calendar calendar = Calendar.getInstance();//日历类的实例化
calendar.set(year, month - 1, day);//设置日历时间,月份必须减一
Date date = calendar.getTime(); // 从一个 Calendar 对象中获取 Date 对象

Date date = new Date();//直接new对象,获取的是当前时间
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);

猜你喜欢

转载自blog.csdn.net/myt0929/article/details/80192364