下面是关于日期的常见的几种类型转换:
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 } }