JAVA中关于时间的转换

package com.lxz;

import java.sql.Time;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.junit.Test;

public class TimeHandler {
	@Test
	// Date转换为String
	public void dateToString() {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String date = sdf.format(new Date());
		// date--->2015-12-20 14:18:59
		System.out.println("date--->" + date);
	}

	@Test
	// String转换为Date
	public void stringToDate() {
		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
		String time1 = "2015-12-20 14:18:20";
		String time2 = "2015/12/20 14:18:20";
		try {
			Date date1 = sdf1.parse(time1);
			// date1--->Sun Dec 20 14:18:20 CST 2015
			System.out.println("date1--->" + date1);

			Date date2 = sdf2.parse(time2);
			// date2--->Sun Dec 20 14:18:20 CST 2015
			System.out.println("date2--->" + date2);
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}

	@Test
	// 时间戳转换为String
	public void timeStampToString() {
		// 获取系统当前时间的毫秒数
		Long currentTimeMillis = System.currentTimeMillis();
		// currentTimeMillis--->1450593244978
		System.out.println("currentTimeMillis--->" + currentTimeMillis);

		// java.sql.Timestamp
		Timestamp timestamp = new Timestamp(currentTimeMillis);
		// date1--->2015-12-20 14:34:04.978
		System.out.println("date1--->" + timestamp.toString());

		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String date = sdf.format(timestamp);
		// date2--->2015-12-20 14:39:27
		System.out.println("date2--->" + date);
	}

	@Test
	// String转换为时间戳
	public void stringToTimetamp() {
		String time = "2015-12-20 14:30:20";
		Timestamp timestamp = Timestamp.valueOf(time);
		// timestamp--->2015-12-20 14:30:20.0
		System.out.println("timestamp--->" + timestamp.toString());
	}

	@Test
	// 时间戳转换为Date
	public void timeStampToDate() {
		// 获取系统当前时间的毫秒数
		Long currentTimeMillis = System.currentTimeMillis();
		// currentTimeMillis--->1450596088712
		System.out.println("currentTimeMillis--->" + currentTimeMillis);

		// java.sql.Timestamp
		Timestamp timestamp = new Timestamp(currentTimeMillis);
		// 子类向父类的转换
		Date date = timestamp;
		// date--->2015-12-20 15:21:28.712
		System.out.println("date--->" + date);

		// Sun Dec 20 15:21:28 CST 2015
		System.out.println(new Date(timestamp.getTime()));
	}

	@Test
	// Date转换为时间戳
	public void dateToTimeStamp() {
		// 获取系统当前时间
		Date date = new Date();
		// date--->Sun Dec 20 15:07:35 CST 2015
		System.out.println("date--->" + date);

		// java.sql.Timestamp
		Timestamp timestamp = new Timestamp(date.getTime());
		// timestamp--->2015-12-20 15:07:35.852
		System.out.println("timestamp--->" + timestamp);
	}

	@Test
	// 将20151220153612类型转换为2015-12-20 15:36:12
	public void stringToString() {
		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMddHHmmss");
		SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String date1 = sdf1.format(new Date());
		// date1--->20151220154829
		System.out.println("date1--->" + date1);
		try {
			String date2 = sdf2.format(sdf1.parse(date1));
			// date2--->2015-12-20 15:48:29
			System.out.println("date2--->" + date2);
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}

	@Test
	// 将java.util.Date转换为java.sql.Date;
	public void dateToSqlDate() {
		// java.util.Date是在除SQL语句之外的情况下使用
		// java.sql.Date是针对SQL语句使用的,只包含日期而没有时间部分
		// PreparedStatement中方法void setDate(int parameterIndex, java.sql.Date x)
		// throws SQLException;
		java.sql.Date sqlDate1 = new java.sql.Date(System.currentTimeMillis());
		// sqlDate1--->2015-12-20,损失精确度
		System.out.println("sqlDate1--->" + sqlDate1);

		Date utilDate = new Date();
		// utilDate--->Sun Dec 20 16:12:39 CST 2015
		System.out.println("utilDate--->" + utilDate);

		java.sql.Date sqlDate2 = new java.sql.Date(utilDate.getTime());
		// sqlDate2--->2015-12-20
		System.out.println("sqlDate2--->" + sqlDate2);

		java.sql.Time sqlTime = new Time(utilDate.getTime());
		// sqlTime--->16:12:39
		System.out.println("sqlTime--->" + sqlTime);

		java.sql.Timestamp sqlTimeStamp = new Timestamp(utilDate.getTime());
		// sqlTimeStamp--->2015-12-20 16:12:39.703
		System.out.println("sqlTimeStamp--->" + sqlTimeStamp);

		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
		java.sql.Date sqlDate3 = java.sql.Date.valueOf(sdf1.format(utilDate));
		// sqlDate3--->2015-12-20
		System.out.println("sqlDate3--->" + sqlDate3);

		SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String sqlDate4 = sdf2.format(sqlDate3);
		// sqlDate4--->2015-12-20 00:00:00
		System.out.println("sqlDate4--->" + sqlDate4);
	}

	@Test
	// 将java.sql.Date转换为java.util.Date;
	public void sqlDateToDate() {
		// 有参构造new java.sql.Date(long date);
		java.sql.Date sqlDate = new java.sql.Date(System.currentTimeMillis());
		//sqlDate--->2015-12-20
		System.out.println("sqlDate--->" + sqlDate);
		
		Date date = new Date(sqlDate.getTime());
		//date--->Sun Dec 20 16:23:53 CST 2015
		System.out.println("date--->" + date);
	}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值