Calender与Date

来源:互联网 发布:anywhere软件源网址 编辑:程序博客网 时间:2024/04/28 17:30

1.roll和add:

今天在使用Calender这个工具类的时候,发现使用roll()方法不能改变年数。

测试:

public static void main(String[] args) {Calendar ca = Calendar.getInstance();System.out.println(ca.getTime());ca.roll(Calendar.DAY_OF_YEAR, 20);System.out.println(ca.getTime());}

效果:



本来想的是获得2014的一月12号,但是却得到是2013年的,是为啥呢??

然后,我们来看jdk的说法吧。

roll:向指定日历字段添加指定(有符号的)时间量,不更改更大的字段。

意思是说,不能改变当前设定的最大时间字段,比如设定的是day of week ,那么只能在这周内取值,设定的是day of month,就只能在本月内取值。


如果想改变那个最大时间段,就得用另外的方法。

add (int field ,int amount): 根据日历的规则,为给定的日历字段添加或减去指定的时间量.

这个方法就不存咋设定那个时间段不能改变。

测试:

public static void main(String[] args) {Calendar ca = Calendar.getInstance();System.out.println(ca.getTime());ca.add(Calendar.DAY_OF_YEAR,10 );System.out.println(ca.getTime());}

效果:



注意:

1.roll :

是在给定的时间段内,循环直到获取到该时间段内的值。

2.day of week in month:指定当前月中的第几个星期,不是哪天。

3.改变小时:

java.text.DateFormat sdf = new SimpleDateFormat(                "yyyy-MM-dd HH:mm:ss");        Calendar ca = Calendar.getInstance();        ca.add(Calendar.DAY_OF_YEAR, 3);        ca.set(Calendar.HOUR_OF_DAY, 05);        ca.set(Calendar.MINUTE, 20);        System.out.println(sdf.format(ca.getTime()));

效果:

2014-08-10 05:20:03

2.日期格式化:

24小时时间格式:

Date cur = new Date();java.text.DateFormat form=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss aaa");System.out.println(form.format(cur.getTime()));

效果:

2014-08-07 14:29:33 下午

12小时时间格式:

Date cur = new Date();java.text.DateFormat form=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss aaa");System.out.println(form.format(cur.getTime()));

效果:

2014-08-07 02:49:18 下午

可截取自己需要的时间段,如:

Date cur = new Date();java.text.DateFormat form=new SimpleDateFormat("MM.dd hh:mm aaa");System.out.println(form.format(cur.getTime()));

效果:

08.07 02:58 下午

为了便于url传输,需要将空格转为asic码:

例如:

java.text.DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Calendar ca = Calendar.getInstance();ca.add(Calendar.DAY_OF_YEAR, 3);ca.set(Calendar.HOUR_OF_DAY, 05);ca.set(Calendar.MINUTE, 20);System.out.println(sdf.format(ca.getTime()).replace(" ", "%20"));

效果:

2014-08-10%2005:20:39




0 0
原创粉丝点击