java的日期显示要涉及到java.util的3个类,
一. Date
最早JDK处理时间/日期的类.
例如:
import java.util.*;
import java.text.*;
public class TestDate {
public static void main(String[] args){
Date date = new Date();
System.out.println(date);
}
}
得到的结果是格林威治标准时间 :Mon May 22 18:05:17 CST 2006
import java.util.*;
import java.text.*;
public class TestDate 1{
public static void main(String[] args){
Date date = new Date();
System.out.println(date);
}
}
返回该日期表示的从 GMT 1970 年 1 月 1 日 00:00:00 起的毫秒数.
二. DateFormate
DateFormate日期/时间格式化子类的一个抽象类.DateFormat类的一个目标是建立一个人们能够识别的字符串。然而,因为语言的差别,不是所有的人希望看到严格的相同格式的日期。法国人更喜欢看到 "25 decembre 2000,",但是美国人习惯看到"December 25,2000."所以一个DateFormat的实例创建以后,这个对象包含了日期的显示格式的信息。如果使用用户电脑区域设置缺省的格式,你可以象下面那样,创建DateFormat对象,使用getDateInstance()方法:
DateFormat df = DateFormat.getDateInstance();
import java.util.*;
import java.text.*;
public class NowString {
public static void main(String[] args) {
Date now = new Date();
DateFormat df = DateFormat.getDateInstance();
String s = df.format(now);
System.out.println(s);
}
}
得到的结果是 2005-5-22;
DateFormat还提供了几个选择日期格式,你可以通过使用重载的 getDateInstance(int style)获得。出于方便的原因,DateFormat提供了几种预置的常量,你可以使用这些常量参数。下面是几个SHORT, MEDIUM, LONG, 和FULL类型的示例
例如:
import java.util.*;
import java.text.*;
public class StyleDemo {
public static void main(String[] args) {
Date now = new Date();
DateFormat df = DateFormat.getDateInstance();
DateFormat df1 = DateFormat.getDateInstance(DateFormat.SHORT);
DateFormat df2 = DateFormat.getDateInstance(DateFormat.MEDIUM);
DateFormat df3 = DateFormat.getDateInstance(DateFormat.LONG);
DateFormat df4 = DateFormat.getDateInstance(DateFormat.FULL);
String s = df.format(now);
String s1 = df1.format(now);
String s2 = df2.format(now);
String s3 = df3.format(now);
String s4 = df4.format(now);
System.out.println("(Default) Today is " + s);
System.out.println("(SHORT) Today is " + s1);
System.out.println("(MEDIUM) Today is " + s2);
System.out.println("(LONG) Today is " + s3);
System.out.println("(FULL) Today is " + s4);
}
}
显示结果为:
Default) Today is Nov 8, 2000
(SHORT) Today is 11/8/00
(MEDIUM) Today is Nov 8, 2000
(LONG) Today is November 8, 2000
(FULL) Today is Wednesday, November 8, 2000
但是如果我希望看到秒数和分钟怎么办?
可以尝试将从工厂方法中获得的 DateFormat 变形为 SimpleDateFormat
例如:
import java.util.*;
import java.text.*;
public class TestSimpleDateFormat{
public static void main(String[] args){
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
System.out.println(sf.format(date));
}
}
得到的结果是 2005-05-22 18:30:17
三 Calendar 类 Calendar是JDK提供的日历类.
import java.util.*;
import java.text.*;
public class TestCalendar {
public static void main(String[] args){
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY,10);//设置小时是24小时制的10点
calendar.set(Calendar.MINUTE,30); //设置分钟是30
calendar.set(Calendar.SECOND,30); //设置秒数是30
Date time = calendar.getTime();
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sf.format(time));
}
}
得到结果是 2005-05-22 10:30:30
我现在想得到10年前的日期怎么办啊?
import java.util.*;
import java.text.*;
public class TestCalendar {
public static void main(String[] args){
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.YEAR,-10);//设置年份为当前-10
Date time = calendar.getTime();
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sf.format(time));
}
}
我现在想得到100天前的日期怎么办啊?
import java.util.*;
import java.text.*;
public class TestCalendar {
public static void main(String[] args){
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_YEAR,-100);//设置日期为当前-100前.
Date time = calendar.getTime();
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sf.format(time));
}
}
只要修改时间域即可,很简单的.
对了想知道星期几怎么办?
import java.util.*;
import java.text.*;
public class TestCalendar {
public static void main(String[] args){
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_YEAR,-99);
Date time = calendar.getTime();
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");//加上星期啦.
System.out.println(sf.format(time));
}
}
想修改星期怎么办?
import java.util.*;
import java.text.*;
public class TestCalendar {
public static void main(String[] args){
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_WEEK,1);//本周的第一个星期日.
Date time = calendar.getTime();
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");
System.out.println(sf.format(time));
}
}
OK,就这么多,Calendar可以轻松的得到日期和时间.