DateFormat与SimpleDateFormat区别和使用详解
DateFormat类
此类是一个日期的格式化类,用来格式化日期。具体日期可以通过java.util.Date类来获取。
DateFormat类的定义:此类是定义在java.test包中的。
public abstract class DateFormat extends Format
实例化DateFormat
DateFormat是一个抽象类,按照以住的思路,直接使用其子类实例化即可。但是DateFormat 类本身的内部提供了可以直接为其实例化的操作。
//得到日期的DateFormat对象:
public static final DateFormat getDateInstance(); //得到日期时间的DateFormat对象:
public static final DateFormat getDateTimeInstance(); //使用DateFormat类格式化Date类日期
public final String format(Date date)
日期格式
美式日期格式
import java.text.DateFormat ;
import java.util.Date ;
public class DateDemo03{
public static void main(String args[]){
DateFormat df1 = null ; // 声明一个DateFormat
DateFormat df2 = null ; // 声明一个DateFormat
df1 = DateFormat.getDateInstance() ; // 得到日期的DateFormat对象
df2 = DateFormat.getDateTimeInstance() ; // 得到日期时间的DateFormat对象
System.out.println("DATE:" + df1.format(new Date())) ; // 按照日期格式化
System.out.println("DATETIME:" + df2.format(new Date())) ; // 按照日期时间格式化 }
};
中式日期格式
通过Locale对象指定要显示的区域,指定的区域是中国
import java.text.DateFormat ;
import java.util.Date ;
import java.util.Locale ;
public class DateDemo04{
public static void main(String args[]){
DateFormat df1 = null ; // 声明一个DateFormat
DateFormat df2 = null ; // 声明一个DateFormat
df1 = DateFormat.getDateInstance(DateFormat.YEAR_FIELD,new Locale("zh","CN")) ; // 得到日期的DateFormat对象
df2 = DateFormat.getDateTimeInstance(DateFormat.YEAR_FIELD,DateFormat.ERA_FIELD,new Locale("zh","CN")) ; // 得到日期时间的DateFormat对象
System.out.println("DATE:" + df1.format(new Date())) ; // 按照日期格式化
System.out.println("DATETIME:" + df2.format(new Date())) ; // 按照日期时间格式化 }
};
SimpleDateFormat类
SimpleDateFormat函数的继承关系:
java.lang.Object
|
+—-java.text.Format
|
+—-java.text.DateFormat
|
+—-java.text.SimpleDateFormat
将一种日期格式变为另外一种日期格式
原始日期:2008-10-19 10:11:30.345
转换后日期:2008 年 10 月 19 日 10 点 11 分 30 秒 345 毫秒
日期模板
首先准备好一个日期格式模板,根据模板的格式来转化日期。
SimpleDateFormat类使用
在构造对象时要传入日期格式模板
//构造方法:
public SimpleDateFormat(String pattern) //转换:
public Date parse(String source)throws ParseException //-->此时取得的是全部时间数。 //格式化:
public final String Format(Date date) //-->将时间重新格式化成字符串显示。
示例
示例一
把Date转化成指定的日期格式
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");//等价于now.toLocaleString()
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.println(now.toGMTString());
System.out.println(now.toLocaleString());
System.out.println(now.toString());
} }
效果:
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
示例二
把给定的字符串中的日期提取为Date
这样做,通常是一个日期字符串,但不是想要的格式,可以先转化为Date,再转化为其它格式。
import java.text.* ;
import java.util.* ;
public class DateDemo05{
public static void main(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 = new SimpleDateFormat(pat1) ; // 实例化模板对象
SimpleDateFormat sdf2 = new SimpleDateFormat(pat2) ; // 实例化模板对象
Date d = null ;
try{
d = sdf1.parse(strDate) ; // 将给定的字符串中的日期提取出来
}catch(Exception e){ // 如果提供的字符串格式有错误,则进行异常处理
e.printStackTrace() ; // 打印异常信息
}
System.out.println(sdf2.format(d)) ; // 将日期变为新的格式
}
};
DateFormat 和SimpleDateFormat 的区别
1.DateFormat 可以直接使用,但其本身是一个抽象类,可以根据Locate指定的区域得到对应的日期时间格式
2.SimpleDateFormat 类是DateFormat 类的子类,一般情况下来讲 DateFormat 类很少会直接使用。而都使用SimpleDateFormat 类完成。
1、DateFormat:是抽象类,所以使用子类SimpleDateFormat 2、SimpleDateFormat类构造方法:
public SimpleDateFormat():使用默认模式。
public SimpleDateFormat(String pattern):使用给定的模式。
API规定的模式:
y M d H m s 3、SimpleDateFormat类成员方法:
public final String format(Date date):日期格式化为日期字符串。
pattern Date parse(String source):日期字符串解析为日期。
更深入了解,可参考这篇文章深入理解Java:SimpleDateFormat安全的时间格式化
参考:
日期操作类(DateFormat与SimpleDateFormat)的区别和实例
转载出处:http://blog.csdn.net/xx326664162/article/details/52208247
最新文章
- JQuery读取XML文件
- IMP数据到指定的表空间
- 对比WDCP面板与AMH面板的区别与选择
- [开发笔记]-FireWorks常用操作快捷键
- LeetCode ";Count of Smaller Number After Self";
- private继承
- Annotation【转】
- python 使用 thrift 教程
- Delaunay triangulation
- linux shell中'',";";和``的区别
- 嵌入式telnet的安装
- 深入理解HTTP协议之POST方法——ajax实例
- Week6&;7——第一次项目冲刺(Alpha版本)
- js unicode处理
- pat甲级 1155 Heap Paths (30 分)
- bzoj4760[USACO2017 Jan]Hoof,Paper,Scissors
- DevExpress SpinEdit控件使用实例——删除ASPxSpinEdit右边的上下小箭头SpinButtons-ShowIncrementButtons
- 简体字丶冯|服务网关kong-docker安装
- python读取文件存到excel中
- 【WC2019笔记】模拟费用流算法
热门文章
- libevent笔记3:evbuffer
- vscode配合less的编译
- 在GitHub中创建目录
- AKKA事件机制
- 显示 Uncaught TypeError: Cannot read property 'dialog' of undefined”的错误解决方法
- laravel 查询随机数据
- .net core使用ocelot---第二篇 身份验证
- SQL Server中查找包含某个文本的存储过程 SQL 查找存储过程中出现过的文字怎么查询 查询整个数据库中出现的文本 sql 全局搜索
- 2019 中钢网java面试笔试题 (含面试题解析)
- Linux命令:scp