java时间处理

使用Calendar根据当前日期算前一年、前一月、前一天    

    本来想用SimpleDateFormat根据当前日期计算前一年、前一月、前一天的日期,发现用这个挺麻烦的,后来发现使用Calendar还是挺方便的。

    Calendar中有个核心的方法:add(int field,int amount),用起来很简单。

Calendar ca = Calendar.getInstance();// 得到一个Calendar的实例  
  1. //ca.setTime(new Date()); // 设置时间为当前时间   
  2. ca.set(20111117);// 月份是从0开始的,所以11表示12月  
  3. ca.add(Calendar.YEAR, -1); // 年份减1  
  4. ca.add(Calendar.MONTH, -1);// 月份减1  
  5. ca.add(Calendar.DATE, -1);// 日期减1  
  6. Date resultDate = ca.getTime(); // 结果  
  7. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");  
  8. System.out.println(sdf.format(resultDate));  
		Calendar ca = Calendar.getInstance();// 得到一个Calendar的实例
		//ca.setTime(new Date()); // 设置时间为当前时间
		ca.set(2011, 11, 17);// 月份是从0开始的,所以11表示12月
		ca.add(Calendar.YEAR, -1); // 年份减1
		ca.add(Calendar.MONTH, -1);// 月份减1
		ca.add(Calendar.DATE, -1);// 日期减1
		Date resultDate = ca.getTime(); // 结果
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		System.out.println(sdf.format(resultDate));
 

    从上面的代码发现Calendar配合SImpleDateFormat来使用还是很方便的。

 

 时间与string转化

 

String str="2010-5-27";
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");

Date date =sdf.parse(str);

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

 

获取年 获取月

Integer year = g.get(Calendar.YEAR);
 Integer month=g.get(Calendar.MONTH)

 

比较时间的大小

Date d = sdf.parse(myString);

boolean flag = d.before(nowdate);
if(flag)
System.out.print("早于今天")
else
System.out.print("晚于今天")



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值