java 常用的日期操作

1. String转换为Date格式:直接上代码,非常简单

// String—>Date:
	public static void string_date() {
		String dateString = "2015-3-19 14:33:33"; 
		try {
			//定制日期格式,HH是24小时制,hh是12小时制,月的MM必须大写,分的mm要小写
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			Date date = sdf.parse(dateString);
			System.out.println("-----转化为date后:"+date);
		} catch (ParseException e) {
			//出现异常时输出当前字符串
			System.out.println(e.getMessage());
		}
	}

2. 相反日期转化为字符串

// Date—>String:
	public static void date_string() {
		// 得到当前时间,转化为string
		String todayDate = (new SimpleDateFormat("yyyy-MM-dd HH-mm-ss"))
				.format(new Date());
		System.out.println("-----得到当前日期的字符串:" + todayDate);
	}


3. 得到当前时间,得到下个月的今天,得到下个月的1号,等等。这里需要用到一个类Calendar,我们可以通过这个类对已知的时间进行操作(加减,取值),关于这里类的具体方法请查看API,这就不介绍了。

例:得到下个月今天,和下个月的1号

public static void dateOne() {
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); // 制定日期格式
		Calendar c = Calendar.getInstance();
		Date date = new Date();
		c.setTime(date);
		c.add(Calendar.MONTH, 1); // 将当前日期加一个月
		//这里可以填负数,代表是减几个月,比如填-1就是上个月

		String validityDate = df.format(c.getTime()); // 返回String型的时间
		System.out.println("-----下个月的今天是:" + validityDate);

		c.set(Calendar.DAY_OF_MONTH, 1);// 返回时间月的第一天
		String firstDay = df.format(c.getTime());
		System.out.println("-----取得下个月的1号:" + firstDay);
	}


4.计算两个时间段所隔的时间间隔,我这里只计算了天,时,分。具体思路是相同的,我们可根据自己的需求来确定

// 时间相减得到天数
	public static int daysBetween(String smdate, String bdate)
			throws ParseException {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
		Calendar cal = Calendar.getInstance();
		cal.setTime(sdf.parse(smdate));
		long time1 = cal.getTimeInMillis();
		cal.setTime(sdf.parse(bdate));
		long time2 = cal.getTimeInMillis();
		long between_days = (time2 - time1) / (1000 * 3600 * 24);

		return Integer.parseInt(String.valueOf(between_days));
	}

	// 时间相减得到小时数
	public static int hourBetween(String smdate, String bdate)
			throws ParseException {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
		Calendar cal = Calendar.getInstance();
		cal.setTime(sdf.parse(smdate));
		long time1 = cal.getTimeInMillis();
		cal.setTime(sdf.parse(bdate));
		long time2 = cal.getTimeInMillis();
		long between_days = (time2 - time1) % (1000 * 3600 * 24);
		long between_hours = between_days / (1000 * 3600);
		return Integer.parseInt(String.valueOf(between_hours));
	}

	// 时间相减得到分钟数
	public static int minuteBetween(String smdate, String bdate)
			throws ParseException {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
		Calendar cal = Calendar.getInstance();
		cal.setTime(sdf.parse(smdate));
		long time1 = cal.getTimeInMillis();
		cal.setTime(sdf.parse(bdate));
		long time2 = cal.getTimeInMillis();
		long between_hours = (time2 - time1) % (1000 * 3600);
		long between_minute = between_hours / (1000 * 60);
		return Integer.parseInt(String.valueOf(between_minute));
	}

   上面这三个方法是计算用的,下面来调用:

public static void main(String[] args) {
		try {
			String lastDate = "2015-2-25 15:55:36";
			// 得到当前时间,转化为string
			String todayDate = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"))
					.format(new Date());
			int days = daysBetween(lastDate, todayDate);
			int hours = hourBetween(lastDate, todayDate);
			int minutes = minuteBetween(lastDate, todayDate);
			String interval = days + "天" + hours + "时" + minutes + "分";
			System.out.println(interval);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

这是我最近一段时间来接触到的一些时间的操作,写下来做笔记,同时和大家分享,希望能够喜欢哦!










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值