如何转换为GST日期?

时间:2016-01-13 10:29:52

标签: java date

在做了很多谷歌研究后,我在这个专家组中发布了这个问题。 我找到了许多相关的链接,但在我的情况下不起作用。

我从数据库中获取日期值,格式为 2016-01-12 00:00:00.0 。现在我想将此日期与用户从屏幕UI输入的日期进行比较,该日期为 Thu Jan 13 00:00:00 GST 2016

现在我要比较这些日期,即从屏幕输入的日期(2016年1月13日00:00:00 GST 2016)不应该大于或等于从DB获取的日期(2016-01-12 00:00:00.0)。

我正在使用的日期比较:

public static boolean compareDates(Date fromDate, Date toDate) {

    if (fromDate.before(toDate)) {
        return true;
    }
    return false;
}

这不起作用,因为日期格式与我的感觉不相似。

所以我想将2016-01-12 00:00:00.0转换为2016年1月12日00:00:00 GST 2016.

请帮助我,因为我在这个问题的早上被困住了。 如果您有任何其他解决方案来比较这些日期,请建议我。

我从我的bean类调用方法compareDates(Date fromDate,Date toDate),如下所示:

if (!TeltrackDateUtil.compareDates( installationdate, instrumentStaffLnkData.getEffectiveFrom() )) {

String erroMessage = resourceBundle .getString("instrument_add_edit_mandatory_check_linkage_effective_from_ins‌​tallation_date");
 createFacesMessage(erroMessage, facesContext); canProceed = false; 
} 

在此installationdate = 2016-01-12 00:00:00.0(来自数据库)和instrumentStaffLnkData.getEffectiveFrom() = Thu Jan 14 00:00:00 GST 2016来自屏幕。

添加一些额外的代码:

在DB(Oracle SQL开发人员)中,它存储为datetime,在我的Entity类中为Timestamp effectiveFrom

在我的ServiceImpl课程中,我将其设置为TO类变量:

InstrumentTO instrument = setEffectiveFrom(instrumentEntity.getEffectiveFrom());

最后在bean类中:

InstrumentTO instrument = instrumentService.getSelectedInstrument(instrumentId);
instrumentStaffLnkData.setInstrument(instrument); 
Date installationdate = instrumentStaffLnkData.getInstrument().getEffectiveFrom();

然后拨打compareDates()

2 个答案:

答案 0 :(得分:2)

您可以将两种不同的格式解析为日期对象,如下所示:

    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S", Locale.ENGLISH);
    Date dateFromDatabase = df.parse("2016-01-12 00:00:00.0");

    DateFormat df2 = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
    Date dateFromUi = df2.parse("Thu Jan 12 00:00:00 GST 2016");

    compareDates(dateFromDatabase, dateFromUi);

但一般情况下,我会建议您使用Joda Time,因为@Srikanta在答案中已解释过。

答案 1 :(得分:1)

如果您使用的是Java 7或更低版​​本,请选择JodaTime库。在Java 8中,您可以使用Time API。这些库允许您在包括时区的时间格式之间切换。通过更容易比较。