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

public class DataClassDemo {
public static void main(String[] args) throws ParseException {
Date date = new Date();
System.out.println(date);// Wed Feb 20 18:12:54 CST 2019

long cur = System.currentTimeMillis();// 输出当前日期时间以long型返回
Date date1 = new Date(cur);// 将long转换为Date
System.out.println(date1.getTime());// getTime()方法将Date转换为long

/**
* SimpleDateFormat(日期格式化):专门日期处理格式 在(java.text包中)
* 将Date型的对象转换为String型显示(以下方法) 构造方法:public SimpleDateFormat(String
* pattern),需要传递转换格式 将Date转换为String:public final String format(Date
* date) 将String 转换为Date:public Date parse(String source)throws
* ParseException 年(yyyy) 月(MM) 日(dd) 时(HH(0~23:59)) 分(mm) 秒(ss) 毫秒(SSS)
*/

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
String str = sdf.format(date);// 将Date型转为String
System.out.println(str);

String s = "1997-04-29 08:08:88.888";
Date date2 = sdf.parse(s);// 将字符串变为日期格式,需要抛异常
System.out.println(date2);

/**以上总结
* Date与String类之间的转换依靠的是SimpleDateFormat;
* String与基本类型之间的转换依靠的是包装类与String.valueof()方法;
* long与Date转换依靠的是Date提供的构造以及getTime()方法
*/

Calendar cal = Calendar.getInstance();// 取得本类对象
StringBuffer buf = new StringBuffer();
buf.append(cal.get(Calendar.YEAR)).append("年")
.append(Calendar.MONTH).append("月")
.append(cal.get(Calendar.DAY_OF_MONTH)).append("日 ")
.append(cal.get(Calendar.HOUR_OF_DAY)).append(":")
.append(cal.get(Calendar.MINUTE)).append(":")
.append(cal.get(Calendar.SECOND));
System.out.println(buf);
/**以上总结
* Calendar 进行简单的日期计算 (导包)import java.util.Calendar;
* public static Calendar getInstance()返回本类对象
* 发现通过cal.get()能取得正确的随时刷新的时间,但月是从0开始,
* 则需要cal.get((Calendar.MONTH)+1).append("月")获得正确月份
* 不解?-(Calendar.MONTH)能直接获取正确月份 ,但好像不用cal.get()则不能动态刷新时间会产生大误差
*/
}
}