700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java.text.dateformat_使用java.text.SimpleDateFormat类进行文本日期和Date日期的转换

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

时间:2023-07-08 17:13:00

相关推荐

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

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="8月9日";

String strDate2="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(pareTo(date1)>0){

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

}

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

if(pareTo(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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。