我从Oracle数据库的开始日期和结束日期获取2个时间戳。他们来这种格式yyyy-MM-dd HH:mm:ss.SSS
处理日期的问题
现在我从文本文件获取另一个时间戳比较。它是字符串格式。以下是我编写的用于提取所需信息的代码。
DateFormat f = new SimpleDateFormat("EEE MMM dd HH:mm:ss zz yyyy");
Date date = f.parse("Tue Aug 23 20:00:03 PDT 2011");
System.out.println("---date----" + f.format(date));
String originalDate = f.format(date);
System.out.println("---originalDate----" + originalDate);
DateFormat f2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
String dateParse = f2.format(date);
System.out.println("---dateParse----"+dateParse);
我得到的输出有点奇怪,而且非常不一致。以下是样品 ---日期---- 8月23日星期二20:00:03 PDT 2011 --- originalDate ---- 8月23日星期二20:00:03 PDT 2011 --- dateParse ---- 2011-08-24 08:30:03.000
在上面的输出中我对---- dateparse --- value感兴趣,因为我需要这个比较。 现在,如果您看到值在理想情况下变化,两者应该是相同的值。
这里的问题是,如果输出随时区而变化,那么我该如何在代码中对来自数据库的数据进行比较?
我只需要看看--dateparse--位于从db获取的日期范围之间。 此代码是否可以正常工作,与时区无关或者此处存在问题。 如果日期不同,那么我的比较可能会出错,或者是上述2个输出的正确方法。
你能告诉我如何解决这个问题。
数据库中数据的时区是什么? (它真的*在文本字段中?您不需要解析数据库中的数据...) –
我同意@Jon。您不必从数据库中解析日期为字符串。它应该像java.util.Date一样来... – gdfbarbosa