我需要能够存储没有时间组件的日期(年/月/日).这是一个日期的抽象概念,例如生日 – 我需要代表一年中的日期而不是特定的时刻.
我使用Java从一些输入文本解析日期,并需要存储在MySQL数据库中.无论数据库,应用程序或任何客户端处于什么时区,他们都应该看到相同的年/月/日.
我的应用程序将在具有与数据库服务器不同的系统时区的计算机上运行,而我无法控制.有没有人有一个优雅的解决方案,以确保我正确存储日期?
最佳答案
您可以将所有时间/时区内容归零:
原文链接:https://www.f2er.com/java/437543.htmlpublic static Date truncateDate(Date date)
{
GregorianCalendar cal = getGregorianCalendar();
cal.set(Calendar.ZONE_OFFSET,0); // UTC
cal.set(Calendar.DST_OFFSET,0); // We don't want DST to get in the way.
cal.setTime(date);
cal.set(Calendar.MILLISECOND,0);
cal.set(Calendar.SECOND,0);
cal.set(Calendar.MINUTE,0);
cal.set(Calendar.HOUR,0);
cal.set(Calendar.AM_PM,Calendar.AM);
return cal.getTime();
}