我需要从日历中选择一个未来的日期,假设我选择的日期是 2013 年 4 月 30 日。现在我想要的是将日期发送到服务器。在服务器端,我需要计算未来日期和当前日期之间的天数并将其发送到数据库。
问题是,当我在本地进行计算时(因为我的服务器和浏览器在同一个时区),它工作正常,但是当服务器与浏览器处于不同的时区时,天数的差异并没有像预期的那样出现。有人请帮助我如何解决时区问题。
我需要从日历中选择一个未来的日期,假设我选择的日期是 2013 年 4 月 30 日。现在我想要的是将日期发送到服务器。在服务器端,我需要计算未来日期和当前日期之间的天数并将其发送到数据库。
问题是,当我在本地进行计算时(因为我的服务器和浏览器在同一个时区),它工作正常,但是当服务器与浏览器处于不同的时区时,天数的差异并没有像预期的那样出现。有人请帮助我如何解决时区问题。
您应该使用一种格式来发送包含时区的数据。你可以:
请参阅: 以秒为单位获取当前日期/时间
看:
您需要使用日历对象。您创建一个日历对象并设置未来日期:例如,如何将 Java.util.calendar 设置为未来的特定时间段 然后您可以通过将当前日期(如长)与返回的 long 相减来执行计算日历,除以 (1000*60*60*24)。
我在自己的应用程序中使用的一些代码来查找大于特定日期时间(午夜)的条目:
long currentTimeStamp = System.currentTimeMillis();
Calendar cal;
cal = Calendar.getInstance();
cal.setTime(new Date(currentTimeStamp));
//GET MS OF MIDNIGHT FROM BEGINNING OF THE DAY
cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MILLISECOND,0);
long midnight = cal.getTimeInMillis();
if(currentTimeStamp - midnight > (30*24*60*60*1000))break;
将两个日期转换为一个共同的时区,例如 GMT,然后计算差异。