我正在开发将由印度用户使用的产品版本,并且正在印度工作 (GMT+5:30)。我们的服务器在美国。将应用一些具有开始日期和结束日期的方案(例如 - 从 8 月 1 日 00:00:00 到 8 月 31 日 11:59:59,它必须处于活动状态)。我正在使用http://www.ruddwire.com/handy-code/date-to-millisecond-calculators/因为我使用此代码假设 getTime 将具有一致的 UTC 时间-
// dateStr is what user enters on UI like 1/08/2013 format = dd/MM/yyyy
public static long getUTCDateWithFormat(String dateStr, String format) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat(format);
Date date = sdf.parse(dateStr);
return date.getTime();
}
所以考虑开始时间,当我从 localhost 运行时,对于 8 月 1 日,我得到了结果 = 1375295400000,这意味着 Thu Aug 01 2013 00:00:00 GMT+0530(印度标准时间)。(所以我知道从 UTC 中减去 5 小时 30 分钟毫秒,因为在运行时我必须将系统时间与这个值进行比较。)
从服务器(美国)运行时预计会保存类似的 UTC,但它保存了 1375336800000,这意味着 2013 年 8 月 1 日星期四 11:30:00 GMT+0530(印度标准时间),因此 UTC 时间不同并且存在 11:30 小时缺陷除了 5:30 小时的缺陷。
没有在服务器上使用以下代码,但我希望得到类似的结果 -
Calendar calendar = Calendar.getInstance();
String[] arr = dateStr.split("/");
calendar.set(new Integer(arr[2]), new Integer(arr[0]), new Integer(
arr[1]));
return calendar.getTime();
请帮我解决这个问题。另外,在运行时进行比较时,我必须使用 new Date() 那应该怎么做?