JAVA时间格式的转换和时间之间的先后比较

第一次写博客,开始将自己平时工作中运用到的一些关于Java和android的只是做一些总结,今天要写的是将时间的格式进行转换,然后和系统时间做比较,判断时间的先后顺序。

一 将String格式为“YYYY-MM-DD”的时间转化为date:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		Date date = null;
       try {
			date = sdf.parse(validate);
		} catch (ParseException e) {
			e.printStackTrace();
		}

使用SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");可以转化很多格式,只要把"yyyy-MM-dd"改成你的格式,例如“yyyy.MM.dd”,“yyyy年MM月dd日”等等

二 将日期做比较:

       比较日期的先后顺序的方法有很多,我这里是把日期用getTimeInMillis()转换成秒后,来比较大小,这样做可以比较精确的计算出两个时间相隔的大小,能够简单计算间隔几天
      下面例子是将自定义的时间与系统的时间做比较,判断是否过期,是否在30天以内。 先将“2015-2-15”转化成date,然后将date转化成calender,再转化成秒,然后和系统 的时间做比较,期间还判断了是够相差30天以内(a*a1表示30天差距),这边注意一下使用calendar.getTimeInMillis()时的类型是lang不能用int。
</pre><pre name="code" class="java">package text;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Comparedate {

	private static Calendar todaycalendar = Calendar.getInstance();

	public static void main(String[] args) {
		
		String validate = "2015-2-15";
		System.out.println("证件是否过期" + date2(validate));

	}

	

	public static String date2(String validate) {
		todaycalendar.set(Calendar.HOUR_OF_DAY, 0);
		todaycalendar.set(Calendar.MINUTE, 0);
		todaycalendar.set(Calendar.SECOND, 0);
		todaycalendar.set(Calendar.MILLISECOND, 0);

		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		Date date = null;
       try {
			date = sdf.parse(validate);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);

		long date1 = calendar.getTimeInMillis();
		long date2 = todaycalendar.getTimeInMillis();
		long a = 30;
		long a1 = 60 * 60 * 1000 * 24;
		/*System.out.println(a * a1);
		System.out.println(date1 - date2);*/
		if (date1 < date2) {
			return "1";
			// 已经过期的
		}
		if ((date1 - date2) < a * a1) {
			return "2";
			// 到期日在30天以内的
		}
		return "3";

	}

}

运行一下,返回的是2;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值