在java中,如何将pubDate从RSS提要解析为日期对象
如何在java中将pubDate从RSS提要解析为日期对象。 格式为:2016年3月3日星期四15:30:00+0200 我试着这样做:在java中,如何将pubDate从RSS提要解析为日期对象,java,rss,Java,Rss,如何在java中将pubDate从RSS提要解析为日期对象。 格式为:2016年3月3日星期四15:30:00+0200 我试着这样做: DateFormat formatter = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.ENGLISH); //java.util.Date utilDate = new java.util.Date(); java.util.Date utilDa
DateFormat formatter = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.ENGLISH);
//java.util.Date utilDate = new java.util.Date();
java.util.Date utilDate = new java.util.Date();
try {
utilDate = formatter.parse(date);
}
catch (java.text.ParseException p1)
{
p1.printStackTrace();
}
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
但是java.sql.Date只保存日期而不保存时间
例如:“2016-02-06 00:00:00”没有时间
你可能应该使用
你可以这样使用它
new java.sql.Timestamp(utilDate.getTime());
RFC1123
输入字符串的格式恰好被定义为标准
长期以来,这种格式已经被更合理的格式所过时。如果可能的话,我强烈建议迁移
java.time
您使用的是旧的日期时间类,这些类已经被java 8及更高版本中内置的java.time框架所淘汰
您的输入格式恰好在java.time中预定义为常量。因此,无需指定格式化模式
String input = "Thu, 03 Mar 2016 15:30:00 +0200";
DateTimeFormatter formatter = DateTimeFormatter.RFC_1123_DATE_TIME ;
OffsetDateTime odt = OffsetDateTime.parse( input , formatter );
总有一天,JDBC驱动程序将被更新为直接使用java.time类型。在此之前,请转换为java.sql类型,特别是在这里的示例中。要转换,我们需要一个瞬间
,即UTC时间轴上的一个瞬间。我们可以从我们的OffsetDateTime
中提取一个
Instant instant = odt.toInstant();
java.sql.Timestamp ts = java.sql.Timestamp.from( instant );
“但是java.sql.Date只保存日期而不保存时间…”你确定吗
utilDate.getTime()
返回long
,返回从日历开始日期到现在的时间值。它怎么能不回来呢?您可以使用java.sql.Date
的getTimestamp(…)
方法将其转换回java.util.Date
,并返回带时间的日期。@user3346907您可以通过单击“答案”旁边的右标记将其标记为答案(如果有帮助的话)