我需要从日历中选择未来的日期,假设我选择的日期是04/30/2013。现在我想要的是将日期发送到服务器。在服务器端,我需要计算未来日期和当前日期之间的天数,并将其发送到数据库。
问题在于,当我在本地进行计算时(因为我的服务器和浏览器在同一时区),它可以正常工作,但是当服务器与浏览器处于不同的时区时,天数的差异不会达到预期。有人请帮我解决时区问题。
答案 0 :(得分:0)
您应该使用格式发送包含其中时区的数据。 你可以:
请参阅: Get current date/time in seconds
见:
您需要使用日历对象。 您创建一个日历对象并设置未来日期:例如How to set Java.util.calendar to a specific time period in the future 然后,您可以通过使用日历返回的长度减去当前日期(一样长)并除以(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;
答案 1 :(得分:0)
在一个公共时区中转换两个日期,例如GMT然后计算差异。