我的用户选择一个日期,我以纪元秒(或必要时的毫秒)存储。
我的用户另外选择一天中的时间和时区。
如何使用这些新信息调整我的纪元时间。我觉得我应该能够根据小时/分钟添加X毫秒,然后根据时区的UTC偏移量减去,但也许有一种方法可以为我做这个
答案 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();
}