Date类内部既不存储年月日也不存储时分秒,而是存储一个从1970年1月1日0点0分0秒开始的毫秒数,而真正有用的年月日时分秒毫秒都是从这个毫秒数转化而来,这是它不容易被使用的地方,尤其是显示和存储的场合。但Date类的优势在于方便计算和比较。

另一点,日常生活中我们习惯用年月日时分秒这样的文本日期来表示时间,它方便显示和存储,也容易理解,但不容易计算和比较。

综上所述,我们在程序中进行日期时间处理时经常需要在在文本日期和Date类之间进行转换,为此我们需要借助java.text.SimpleDateFormat类来进行处理,下文列举了它的几个常用示例。

SimpleDateFormat函数的继承关系:

java.lang.Object

|

+----java.text.Format

|

+----java.text.DateFormat

|

+----java.text.SimpleDateFormat

1.将Date转化为常见的日期时间字符串这里我们需要用到java.text.SimpleDateFormat类的format方法,其中可以指定年月日时分秒的模式字符串格式。

Date date = new Date();

Format formatter = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");

System.out.println("转化的时间等于="+formatter.format(date));

其中

yyyy表示四位数的年份

MM表示两位数的月份

dd表示两位数的日期

HH表示两位数的小时

mm表示两位数的分钟

ss表示两位数的秒钟

2.将文本日期转化为Date以方便比较

文本日期的优势在于便于记忆,容易处理,但缺点是不方便比较,这时我们需要借助SimpleDateFormat的parse方法得到Date对象再进行比较,实例如下:

String strDate1="2004年8月9日";

String strDate2="2004年10月5日";

SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy年MM月dd日");

java.util.Date date1 = myFormatter.parse(strDate1);

java.util.Date date2 = myFormatter.parse(strDate2);

// Date比较能得出正确结果

if(date2.compareTo(date1)>0){

System.out.println(strDate2+">"+strDate1);

}

// 字符串比较得不出正确结果

if(strDate2.compareTo(strDate1)>0){

System.out.println(strDate2+">"+strDate1);

}

3.100天后的时间

// 当前时间

Date date = new Date();

SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd");

String str = formate.format(date);

System.out.println("当前时间:"+str);

Calendar c = Calendar.getInstance();

c.setTime(date);

// 100天后

c.add(Calendar.DAY_OF_MONTH, 100);

System.out.println("100天后时间:"+formate.format(c.getTime()));

SimpleDateFormat 类字段:

字母  日期或时间元素  表示  示例

G  Era 标志符  Text  AD

y  年  Year  1996; 96

M  年中的月份  Month  July; Jul; 07

w  年中的周数  Number  27

W  月份中的周数  Number  2

D  年中的天数  Number  189

d  月份中的天数  Number  10

F  月份中的星期  Number  2

E  星期中的天数  Text  Tuesday; Tue

a  Am/pm 标记  Text  PM

H  一天中的小时数(0-23)  Number  0

k  一天中的小时数(1-24)  Number  24

K  am/pm 中的小时数(0-11)  Number  0

h  am/pm 中的小时数(1-12)  Number  12

m  小时中的分钟数  Number  30

s  分钟中的秒数  Number  55

S  毫秒数  Number  978

z  时区  General time zone  Pacific Standard Time; PST; GMT-08:00

Z  时区  RFC 822 time zone  -0800

java.text.dateformat_使用java.text.SimpleDateFormat类进行文本日期和Date日期的转换相关推荐

  1. Java计算时间差_传统的SimpleDateFormat类

    Java计算时间差_传统的SimpleDateFormat类 SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd ...

  2. java查询日期类的表,JAVA菜鸟入门篇 - 时间处理相关类实例:打印该月日期表 (29)...

    利用前面我们所学习有关时间处理类,Date.DateFormat.SimpleDateFormat以及Calendar和GregorianCalendar类 编写一个按照用户定义格式(格式:2015- ...

  3. 【Java】浅析SimpleDateFormat类

    介绍SimpleDateFormat类 SimpleDateFormat类 :java.text.SimpleDateFormat 一个以与语言环境相关的方式来格式化和分析日期的具体类.是抽象类 ja ...

  4. Java日期格式化(DateFormat类和SimpleDateFormat类)

    格式化日期表示将日期/时间格式转换为预先定义的日期/时间格式.例如将日期"Fri May 18 15:46:24 CST2016" 格式转换为 "2016-5-18 15 ...

  5. 6、日期格式化(DateFormat类和SimpleDateFormat类)

    格式化日期表示将日期/时间格式转换为预先定义的日期/时间格式.例如将日期"Fri May 18 15:46:24 CST2016" 格式转换为 "2016-5-18 15 ...

  6. Java 获取 n个 工作日【前】或【后】的日期

    Java 通过当前日期[时间值自定义],获取n个工作日[前]或[后]的日期 注:节假日要自己存储到数据库,存储形式自选 import org.apache.commons.lang.StringUti ...

  7. 正则表达式、常用类(Pattern类、Matcher类、Math类、System类、Random类、BigDecimal类、Date类、SimpleDateFormat类、Calendar类)

    JAVA学习第十六天-正则表达式.常用类(Pattern类.Matcher类.Math类.System类.Random类.BigDecimal类.Date类.SimpleDateFormat类.Cal ...

  8. java 日期处理_JAVA 日期处理大全

    1.获取服务器端当前日期: DatemyDate=newDate(); %> 2.获取当前年.月.日: DatemyDate=newDate(); int thisYear=myDate.get ...

  9. Date类(java.util)和SimpleDateFormat类(java.text)

    在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Date 类.这个类最主要的作用就是获取当前时间,我们来看下 Date 类的使用: 使用 Date 类的默 ...

最新文章

  1. Android Studio连接天天模拟器
  2. Android快速发布项目到jcenter详解
  3. shader 编程入门(一)
  4. 解决Eclipse中无法查看Java源码
  5. 1使用技巧_新版PubMed使用技巧1
  6. SQL2K数据库开发十四之表操作设置用户对表的权限
  7. Javascript 脚本错误.
  8. Linux权限管理命令
  9. atitit.判断时间重叠方法总结 java c++ c#.net js php
  10. html中使用js实现体彩大乐透随机选号
  11. 电脑没声音解决方法(重启/声卡设置/升级声卡驱动)
  12. MLX90614使用和组装的说明
  13. Android系统移植与调试之-------build.prop文件详细赏析
  14. 【控制篇 / 应用】(6.0) ❀ 01. 只允许使用 QQ 和微信 (上) ❀ FortiGate 防火墙
  15. php laravel 入门教程,Laravel 5 系列入门教程(一)【最适合中国人的 Laravel 教程】...
  16. input框如何设置框禁止输入
  17. 程序员必备小众又实用的网站,你知道几个?
  18. POI列子:替换文本框值
  19. Wasabi Technologies领导团队新增日本和澳大利亚业务高管,以支持整个亚太区对热云存储的需求
  20. linux无线网卡monitor模式,ubuntu下开启无线网卡的monitor mode

热门文章

  1. PC机I/O端口分配列表
  2. 神经网络粒子和物理粒子的一个本质差别
  3. 什么样 信号_深圳停止商务公寓用地审批释放着什么样的信号,会引起房价下跌吗...
  4. 4.7 CNN 特征可视化-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  5. 基于stm32f107 stm32cube 和 LWIP 协议实现 udp 组播通信
  6. DFTug - Getting Started(上篇)
  7. 电机PID实验--一文让你看透PID​
  8. 利用SIMULINK搭建一个16QAM调制解调收发系统
  9. 利用FFT计算非平稳随机信号WVD分布
  10. 基于MATLAB的波速形成仿真