标签:java simple format date calendar
Date类型大多数时间分量计算方法已经被Calendar取代 
Date常用方法setTime getTime() 
new Date();默认获取当前的时间
SimpleDateFormat用来格式化和解析日期的具体类 
匹配日期的字符串 
y–>年 
M–>月 
d–>日 
E–>星期 
a–>上下午 
H–>小时(24小时制) 
h–>小时(12小时制) 
m–>分 
s–>秒
格式化Date返回值为String
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String result = sdf.format(new Date());
System.out.println(result);输出结果:2015-07-22 21:17:43
将String解析为Date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate = "2015-07-22 21:21:01";
Date date = sdf.parse(strDate);
System.out.println(date);输出结果: 
Wed Jul 22 21:21:01 CST 2015
Calender封装了日历信息 
常用方法: 
getInstance()获取一个系统所在地区的一个Calender的子类实现 
通常用于实例化Calendar 
set(int field,int value)设置时间 
get(int field)获取时间分量对应值 
getActualMaximum(int field)获取时间分量的最大值 
add()对时间分量进行计算 
setTime和getTime方法设置和获取时间
综合运用: 
商品促销计算程序 
需求: 
用户输入商品生产日期和保质期,通过程序计算促销日期 
计算规则: 
到保质期前14添所在的周三为促销日
public class PromotionDate {
    public static void main(String[] args) throws Exception {
        Calendar cd = Calendar.getInstance();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入生产日期:");
        Date productionDate= sdf.parse(sc.nextLine());//接收字符串并转换为日期型
        System.out.print("请输入保质期:");
        int days = sc.nextInt();
        cd.setTime(productionDate);
        cd.add(Calendar.DAY_OF_YEAR, (days - 14));
        cd.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
        String promotionDate = sdf.format(cd.getTime()); //格式化计算后的日期
        System.out.println("该产品的促销日期为:"+ promotionDate);
        sc.close();
    }
}测试结果: 
请输入生产日期:2015-01-01 
请输入保质期:180 
该产品的促销日期为:2015-06-17
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:java simple format date calendar
原文地址:http://blog.csdn.net/shf4715/article/details/47010369