java的时间与日历处理

Java 语言的Date(日期),Calendar(日历),DateFormat(日期格式)组成了Java标准的一个基本但是非常重要的部分。

系统日期  long 毫秒数

    System.out.println(System.currentTimeMillis());
    //    1466824721570
我们如何才能以一种用户明白的格式来显示这个日期呢?
 在这里类java.text.SimpleDateFormat 和它的抽象基类 
                java.text.DateFormat 就派得上用场了。 
日期数据的定制格式 
Date date = new Date();
System.out.println(date);
System.out.println(date.getTime());
System.out.println(System.currentTimeMillis());
DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
System.out.println(df.format(date));
console:
Sat Jun 25 14:15:24 GMT+08:00 2016
1466835324388
2016/06/25 14:15:24
只要通过向SimpleDateFormat 的构造函数传递格式字符串"yyyy/MM/dd HH:mm:ss",我们就能够指明自己想要的格式。格式字符串中的ASCII 字符告诉格式化函数下面显示日期数据的哪一个部分。MMMM是月,dd是日,yyyy是年EEEE是星期,字符的个数决定了日期是如何格式化的。



将文本数据解析成日期对象  

        DateFormat dateFormat= new SimpleDateFormat("yyyy:MM:dd");
        String str = "2014:03:24";
        try{
            Date date = dateFormat.parse(str);
            System.out.println(date);
                         //此处显示 Sun Mar 24 00:00:00 GMT+08:00 2013
            System.out.println(date.getTime());

            System.out.println(dateFormat.format(date));      //重点     format   }catch(Exception e){
            e.printStackTrace();
        }
console:

Mon Mar 24 00:00:00 GMT+08:00 2014
1395590400000
2014:03:24


使用标准的日期格式化过程 

下面是我们获取了六个内建的日期格式化过程。它们包括一个空,默认,短的,中等的,长的,完整的日期格式。 

String dateStr=null;

Date date= new Date();
System.out.println(date);

//日期
dateStr= DateFormat.getDateInstance().format(date);//默认
System.out.println(dateStr);

dateStr=DateFormat.getDateInstance(DateFormat.DEFAULT).format(date);//默认
System.out.println(dateStr);

dateStr=DateFormat.getDateInstance(DateFormat.SHORT).format(date);//短型
System.out.println(dateStr);

dateStr=DateFormat.getDateInstance(DateFormat.LONG).format(date);// 长型
System.out.println(dateStr);

dateStr=DateFormat.getDateInstance(DateFormat.MEDIUM).format(date);//中间型,等效默认型
System.out.println(dateStr);

dateStr=DateFormat.getDateInstance(DateFormat.FULL).format(date);//全型
System.out.println(dateStr);

System.out.println("--------------------------------------------");

//时间
dateStr = DateFormat.getDateTimeInstance(DateFormat.DEFAULT, DateFormat.DEFAULT).format(date);
System.out.println(dateStr);

dateStr = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT).format(date);
System.out.println(dateStr);

dateStr = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG).format(date);
System.out.println(dateStr);

dateStr = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM).format(date);
System.out.println(dateStr);

dateStr = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL).format(date);
System.out.println(dateStr);

console:

Sat Jun 25 14:19:47 GMT+08:00 2016
2016-6-25
2016-6-25
16-6-25
2016年6月25日
2016-6-25
2016年6月25日 星期六
--------------------------------------------
2016-6-25 14:19:47
16-6-25 下午2:19
2016年6月25日 下午02时19分47秒
2016-6-25 14:19:47
2016年6月25日 星期六 下午02时19分47秒 GMT+08:00


日历处理:

import java.text.DateFormat;
import java.util.Date;
import java.util.GregorianCalendar;

public class CalendarDemo {
public static void main(String[] args) {
Date date = new Date();
DateFormat dateFormat= DateFormat.getDateInstance(DateFormat.FULL);
GregorianCalendar calendar = new GregorianCalendar();

calendar.setTime(date);// 使用给定的 Date 设置此 Calendar 的时间
System.out.println("System Date:"+calendar.getTime());//获取日历时间

//设置日历星期5的时间
calendar.set(GregorianCalendar.DAY_OF_WEEK, GregorianCalendar.FRIDAY);//将给定的日历字段设置为给定值。
System.out.println("Day of Week to Saturday: \n"+dateFormat.format(calendar.getTime()));

int saturdayNum= 0;
while(saturdayNum <=10){
//增加日历类的时间
calendar.add(GregorianCalendar.DAY_OF_MONTH,7);//根据日历的规则,为给定的日历字段添加或减去指定的时间量。
System.out.println(calendar.getTime());
System.out.println(dateFormat.format(calendar.getTime()));
//获取日期号
System.out.println("----"+calendar.get(GregorianCalendar.DAY_OF_MONTH));//返回给定日历字段的值。
saturdayNum++;
}
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值