日期Date和String/Long之间的转换

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

public class Date_String {

	@SuppressWarnings("deprecation")
	public static void main(String[] args) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		try {
			Date date = sdf.parse("5689741236589745631");
			System.out.println("date=" + date);// 错误消息,原因是parse中的参数字符串不是特定的字符串
		} catch (ParseException e) {
			e.printStackTrace();
		}

		/**
		 * SimpleDateFormat类中parse()方法用于将输入的特定字符串转换成Date类的对象
		 * parse()无参,将特定的字符串转换成Date类
		 * 使用无参的parse()时,要解析的String表示一定是按照“年-月-日(一定有一个空格)上午 /下午小时:分钟”
		 * 如:2011-11-21 上午23:12 11-10-2 下午01:34 转换成的Date类也是系统的格式,可读性很差
		 */
		Date date = null;
		String s = "2012-01-29 上午12:03";
		SimpleDateFormat sdf1 = new SimpleDateFormat();
		try {
			date = sdf1.parse(s);
			System.out.println("------系统默认无参数Date的parse------");
			System.out.println(" " + date);// Sun Jan 29 00:03:00 CST 2012
		} catch (ParseException e) {
			e.printStackTrace();
		}

		/**
		 * 使用自定义格式SimpleDateFormat(String pattern)利用parse()将字符串转换成Date类
		 * Date类也是系统的格式,可读性很差
		 */
		Date date1 = null;
		String s1 = "2012-01-29-22-26-23";
		String pattern = "yyyy-MM-dd-HH-mm-ss";
		SimpleDateFormat sdf11 = new SimpleDateFormat(pattern);
		try {
			date1 = sdf11.parse(s1);
			System.out.println("------自定义格式Date的parse------");
			System.out.println(" " + date1);// Sun Jan 29 22:26:23 CST 2012
		} catch (ParseException e) {
			e.printStackTrace();
		}

		// 创建参数是Long类型的日期
		Date d = new Date(System.currentTimeMillis());
		System.out.println("d=" + d.toLocaleString());// d=2016-9-28 13:49:29

		// 将Date转换成Long,获取当前时间的毫秒数
		long time = d.getTime();
		System.out.println("time=" + time);// time=1475041769413

		int date11 = d.getDate();// 1-31
		System.out.println("date1=" + date11);// date1=28
		int day = d.getDay();// 0-6,0表示周日6表示周六
		System.out.println("day=" + day);// day=3
		int month = d.getMonth();// 0-11,0表示1月,11表示12月
		System.out.println("month=" + month);// month=8
		int year = d.getYear();// 距离1900年多少年
		System.out.println("year=" + year);// year=116
		int hour = d.getHours();// 当前日期的几点
		System.out.println("hour=" + hour);// hour=13
		int minute = d.getMinutes();// 当前日期的几分
		System.out.println("minute=" + minute);// minute=49
		int second = d.getSeconds();// 当前日期的几秒
		System.out.println("second=" + second);// second=29

		// 将Date转换成String
		String newDate = "";
		newDate = sdf.format(d);
		System.out.println("newDate=" + newDate);// newDate=2016-09-28
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值