package test0910;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Date;
/*
* 1、常用类中的日期与时间的管理类: Date
* 1) 它来源于 java.util.Date;
*
* 2) 它用来管理日期与时间。但它管理的日期和时间是指一个时刻(即:静止的时间)
*
* 3) 它的常用构造器:
* Date() 当使用默认构造器构造对象时,则它对应的日期时间与系统时钟是一致。
* Date(long time) 当使用带参数的构造器时,则它构造的对象对应着指定的时间。
*
* 注意: 在java语言中,基准时间以 1970-1-1 00:00:00 为起始点。
* 另外,在计算机中,时间以毫秒为基本单位。1秒 == 1000毫秒。
*
* 4) 常用方法:
* long getTime()
* d1.after(d3);
* d1.before(d3);
*
* 2、日期与时间的格式化:
* 1) System.out.printf("%t?" , new Date() );
*
* 2) String类的format()方法实现格式化.
* 注意: String.format()方法的使用方式与 printf()的方式完全一样。
* 只不过,printf()将格式化后的结果打印在屏幕,而String.format()将结果以字符串反馈。
*
* 3) DateFormat类实现格式化
*
* 4) SimpleDateFormat类实现格式化。
*
*
* DateFormat常用类实现日期时间的格式化, 另外,它还可以将日期型字符串还原为Date类的对象。
*
* 1)它来源于 java.text.DateFormat;
* 2)它有两个功能:
* a) 格式化日期时间。
* b) 将日期时间型字符串还原为Date类的对象。
*
* 说明:当某个语句写完后,没有语法错误。但,编译时报错且错误信息为: "Unhandled exception type XXXX"
* 表示有异常需要进行处理。
*
* SimpleDateFormat的作用
* 1) 它来源于 java.text.SimpleDateFormat;
*
* 2) 它的作用有两个:
* a) 格式化日期与时间。
*
* b) 将日期时间型字符串还原为 Date类的对象。 *
*
* 3) SimpleDateFormat是DateFormat类的子类。它与父类DateFormat不同的是:
* 在格式化日期时间时,可以灵活地组织格式。
*/
public class DateTest {
public static void main(String[] args) throws ParseException {
Date d1 = new Date();
System.out.println( d1 );
System.out.printf("%tF\n" , d1 );
Date d2 = new Date( 365L * 24 * 60 * 60 * 1000 * 44L );
System.out.println( d2 );
long t1 = d1.getTime();
System.out.println( t1 );
Date d3 = new Date( t1 - 1000 );
System.out.println("d1>>>" + d1 );
System.out.println("d3>>>" + d3 );
boolean flag = d1.after(d3); //判断d1是在d3之后吗
System.out.println("flag>>>" + flag );
flag = d1.before(d3); //判断d1是在d3之前吗
System.out.println("flag>>>" + flag );
flag = d1.equals(d3);
flag = new Date().equals( new Date() );
System.out.println( flag );
System.out.println("\n日期和时间的格式化");
System.out.printf("日期>>> %tF \n" , new Date() );
System.out.printf("北京时间>>> %tT \n" , new Date() );
System.out.printf("今天是: %tA \n" , new Date() );
System.out.printf("%tF %<tT %<tA\n" , new Date() );
System.out.printf("%tY年%<tm月%<td日 \n" , new Date() );
System.out.printf("%tH时%<tM分%<tS秒 \n" , new Date() );
double salary = 1000000 / 3.0;
System.out.printf("%.2f\n" , salary);
String str = String.format("%.2f\n" , salary);
System.out.println( str );
int i = 1;
str = "201415" + String.format("%03d", i);
System.out.println( str );
str = String.format("%tF %<tT %<tA\n" , new Date() );
System.out.println( str );
Date da1 = new Date();
System.out.println( da1 );
String st1 = DateFormat.getDateInstance().format( da1 );
System.out.println( st1 );
st1 = DateFormat.getTimeInstance().format( da1 );
System.out.println( st1 );
st1 = DateFormat.getDateTimeInstance().format( da1 );
System.out.println( st1 );
st1 = "2008-8-8";
Date dt = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("====^_^====\nyyyy-MM-dd \n HH:mm:ss\n==========");
String stt = sdf.format( dt ); //将d1按照sdf指定的格式进行格式化。
System.out.println( str );
stt = "2008-8-8";
System.out.println( stt );
sdf = new SimpleDateFormat("yyyy-MM-dd");
Date dr = sdf.parse( stt ); //将字符串还原为Date类的对象。
System.out.println( dr );
}
}