利用Java格式化形如:“Fri, 26 Nov 2021 19:01:44 GMT”字符串为日期类
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
使用SimpleDateFormat对非常规格式的日期字符串进行Format
一、应用场景
我们在利用URL对象对某个网页发送请求时,会产生头文件字段,其中包括一个发起请求时的日期(Date)字段,该字段所存储的值默认是非常规的类似于:“Fri, 26 Nov 2021 02:27:44 GMT”这样的字符串格式,那么如何可以将其转化为我们常见的“yyyy-MM-dd”格式呢
二、使用步骤
1.创建一个能解析源日期字符串的SimpleDateFormat对象
代码如下(示例):
SimpleDateFormat sdf=new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz",Locale.US);
Date dateString_date=sdf.parse("Fri, 26 Nov 2021 02:27:44 GMT");
这里我们注意使用的构造函数为
new SimpleDateFormat(dateString,Locale);
不能用更为常见的构造函数
new SimpleDateFormat(dateString)
原因是:如果不添加本地化属性Locale则会以默认的中国所在地对dateString进行格式化,而中国地区表示周几是用汉字比如“周五”进行表示,因此无法识别"Fri"这种英文格式,因此我们需要添加一个Locale对象表明我们要解析的日期字符串是以美国地区的格式书写的。
2.将转换为Date类型的字符串转换为我们所需格式的日期字符串并输出
代码如下(示例):
SimpleDateFormat sdf_test=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss EEE");
String dateString_format=sdf_test.format(dateString_date);
此时我们输出dateString_format即可得到如下所示的日期字符串了:
2021-11-26 05:01:44 周五
总结
SimpleDateFormat是一个非常强大的日期格式化工具,利用好这个工具类可以将绝大多数的日期字符串转换为合适的Date类型变量,以便后续进行操作