按时区和小时:分钟偏移纪元日期

时间:2014-11-03 22:17:33

标签: java calendar jodatime unix-timestamp timestamp-with-timezone

我的用户选择一个日期,我以纪元秒(或必要时的毫秒)存储。

我的用户另外选择一天中的时间和时区。

如何使用这些新信息调整我的纪元时间。我觉得我应该能够根据小时/分钟添加X毫秒,然后根据时区的UTC偏移量减去,但也许有一种方法可以为我做这个

1 个答案:

答案 0 :(得分:2)

在Java中,您应该通过java.util.Calendar实例执行日期和时间操作。您也可以将其用于日期时间存储。具体如何进行取决于输入的形式和输出的所需形式,但它可能是这样的:

public long computeDateTimeMillisUTC(long dateMillisUTC, int hour24,
        int minute, TimeZone zone) {
    Calendar cal = Calendar.getInstance(zone);

    cal.setTimeInMillis(dateMillisUTC);
    cal.set(Calendar.HOUR_OF_DAY, hour24);
    cal.set(Calendar.MINUTE, minute);

    return cal.getTimeInMillis();
}