我需要编写一个接受 ajava.util.Date
并使用 JUST MATH (没有日期格式化程序,没有日历对象等)从中删除小时、分钟和毫秒的函数:
private Date getJustDateFrom(Date d) {
//remove hours, minutes, and seconds, then return the date
}
此方法的目的是从毫秒值中获取日期,不包含时间。
这是我到目前为止所拥有的:
private Date getJustDateFrom(Date d) {
long milliseconds = d.getTime();
return new Date(milliseconds - (milliseconds%(1000*60*60)));
}
问题是,这只删除了分钟和秒。我不知道如何删除小时。
如果我这样做milliseconds - (milliseconds%(1000*60*60*23))
,那么它会回到前一天的 23:00 小时。
编辑:
这是一个替代解决方案:
public static Date getJustDateFrom(Date d) {
Calendar c = Calendar.getInstance();
c.setTime(d);
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
return c.getTime();
}
此解决方案是否会受到我的应用程序的客户端/服务器端之间的时区差异的影响?