java美式时间格式,⽇期操作类(DateFormat与
SimpleDateFormat)。。。
1.DateFormat类
此类是⼀个⽇期的格式化类,专门格式化⽇期的操作,因为java.util.Date类本⾝就已经包含了完整的⽇期,所以只需要将些⽇期按照⼀些好的格式格式化⼀下显⽰就好了.
观察DateFormat类的定义:此类是定义在st包中的。
public abstract class DateFormat extends Format
但是定义上可以发现,此类是⼀个抽象类,按照以住的思路,直接使⽤其⼦类实例化即可,但是DateFormat 类本⾝的内部提供了可以直接为其实例化的操作。
得到⽇期的DateFormat对象:public static final DateFormat getDateInstance()
得到⽇期时间的DateFormat对象:public static final DateFormat getDateTimeInstance()
直接使⽤DateFormat类完成Date类的转换功能:public final String format(Date date)
美式⽇期格式
1
2
3
4
5
6
7
8
9
10
11
12
DateFormat ;
import java.util.Date ;
public class DateDemo03{
public static void main(String args[]){
DateFormat df1 =null ;// 声明⼀个DateFormat
DateFormat df2 =null ;// 声明⼀个DateFormat
df1 = DateInstance() ;// 得到⽇期的DateFormat对象
df2 = DateTimeInstance() ;// 得到⽇期时间的DateFormat对象
System.out.println("DATE:" + df1.format(new Date())) ;// 按照⽇期格式化
System.out.println("DATETIME:" + df2.format(new Date())) ;// 按照⽇期时间格式化
}
};
中式⽇期格式(通过Locale对象指定要显⽰的区域,指定的区域是中国)
importjava.util.Date ;
importjava.util.Locale ;
publicclassDateDemo04{
publicstaticvoidmain(String args[]){
DateFormat df1 = null;// 声明⼀个DateFormat
DateFormat df2 = null;// 声明⼀个DateFormat
df1 = DateInstance(DateFormat.YEAR_FIELD,newLocale("zh","CN")) ;// 得到⽇期的DateFormat对象
df2 = DateTimeInstance(DateFormat.YEAR_FIELD,DateFormat.ERA_FIELD,newLocale("zh","CN")) ;// 得到⽇期时间的DateFormat对象
System.out.println("DATE:"+ df1.format(newDate())) ;// 按照⽇期格式化
System.out.println("DATETIME:"+ df2.format(newDate())) ;// 按照⽇期时间格式化
}
}; 2.SimpleDateFormat类
此类的功能是完成⽇期的显⽰格式化的,例如,在开发中,可以会将⼀种⽇期格式变为另外⼀种⽇期格式,如下所⽰:
原始⽇期:2008-10-19 10:11:30.345
转换捕⽇期:2008 年 10 ⽉ 19 ⽇ 10 点 11 分 30 秒 345 毫秒
但是以上的两个⽇期中⽇期的数字是完全⼀样的,唯⼀不同的是⽇期的显⽰格式不同,所以要想实现这样的转换功能就必须依靠SimpleDateFormat类。
如果要想实现转换,则必须⾸先准备好⼀个模板,通过此模板进⾏⽇期数字的提取⼯作。
在SimpleDateFormat类使⽤的时候,必须注意的是在构造对象时要传⼊匹配的模板
构造⽅法:public SimpleDateFormat(String pattern)
转换:public Date parse(String source)throws ParseException -->此时取得的是全部时间数。
格式化:public final String Format(Date date) -->将时间重新格式化成字符串显⽰。
<* ;
importjava.util.* ;
publicclassDateDemo05{
publicstaticvoidmain(String args[]){
String strDate = "2008-10-19 10:11:30.345";
// 准备第⼀个模板,从字符串中提取出⽇期数字
String pat1 = "yyyy-MM-dd HH:mm:ss.SSS";
// 准备第⼆个模板,将提取后的⽇期数字变为指定的格式
String pat2 = "yyyy年MM⽉dd⽇ HH时mm分ss秒SSS毫秒";
SimpleDateFormat sdf1 = newSimpleDateFormat(pat1) ;// 实例化模板对象
SimpleDateFormat sdf2 = newSimpleDateFormat(pat2) ;// 实例化模板对象
Date d = null;
try{
d = sdf1.parse(strDate) ; // 将给定的字符串中的⽇期提取出来
}catch(Exception e){// 如果提供的字符串格式有错误,则进⾏异常处理
e.printStackTrace() ; // 打印异常信息
}
System.out.println(sdf2.format(d)) ; // 将⽇期变为新的格式
}
};
总结:
1.DateFormat 可以直接使⽤,但其本⾝是⼀个抽象类,可以根据Locate指定的区域不同得到不同的⽇期时间显⽰效果
2.SimpleDateFormat 类是DateFormat 类的⼦类,⼀般情况下来讲 DateFormat 类很少会直接使⽤。⽽都使⽤SimpleDateFormat 类完成。
------------------------------------------------------------------------------------------------------------------------------------
SimpleDateFormat函数的继承关系:
java.lang.Object
|
+----Format
|
+----DateFormat
|
+----SimpleDateFormat
下⾯是个⼩例⼦:
*;
import java.util.Date;
/**
SimpleDateFormat函数语法:
G 年代标志符
y 年
M ⽉
d ⽇
h 时 在上午或下午 (1~12)
H 时 在⼀天中 (0~23)
m 分
s 秒
S 毫秒
E 星期
D ⼀年中的第⼏天
F ⼀⽉中第⼏个星期⼏
w ⼀年中第⼏个星期
W ⼀⽉中第⼏个星期
a 上午 / 下午 标记符
k 时 在⼀天中 (1~24)
K 时 在上午或下午 (0~11)
z 时区
*/
public class FormatDateTime {
public static void main(String[] args) {
SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM⽉dd⽇ HH时mm分ss秒");
SimpleDateFormat myFmt1=new SimpleDateFormat("yy/MM/dd HH:mm");
SimpleDateFormat myFmt2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//等价于LocaleString() SimpleDateFormat myFmt3=new SimpleDateFormat("yyyy年MM⽉dd⽇ HH时mm分ss秒 E "); SimpleDateFormat myFmt4=new SimpleDateFormat(
"⼀年中的第 D 天 ⼀年中第w个星期 ⼀⽉中第W个星期 在⼀天中k时 z时区");
Date now=new Date();
System.out.println(myFmt.format(now));
System.out.println(myFmt1.format(now));
System.out.println(myFmt2.format(now));
System.out.println(myFmt3.format(now));
System.out.println(myFmt4.format(now));
System.out.GMTString());
System.out.LocaleString());
System.out.String());
}
}
效果:
2004年12⽉16⽇ 17时24分27秒
04/12/16 17:24
2004-12-16 17:24:27
2004年12⽉16⽇ 17时24分27秒 星期四
⼀年中的第 351 天 ⼀年中第51个星期 ⼀⽉中第3个星期 在⼀天中17时 CST时区
16 Dec 2004 09:24:27 GMT
2004-12-16 17:24:27
Thu Dec 16 17:24:27 CST 2004
下⾯是个JavaBean:
public class FormatDateTime {
public static String toLongDateString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM⽉dd⽇ HH时mm分ss秒 E "); return myFmt.format(dt);
}
public static String toShortDateString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("yy年MM⽉dd⽇ HH时mm分");
return myFmt.format(dt);
}
public static String toLongTimeString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("HH mm ss SSSS");java时间日期格式转换
return myFmt.format(dt);
}
public static String toShortTimeString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("yy/MM/dd HH:mm");
return myFmt.format(dt);
}
public static void main(String[] args) {
Date now=new Date();
System.out.LongDateString(now));
System.out.ShortDateString(now));
System.out.LongTimeString(now));
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论