我希望能够将时间值存储在mysql数据库中,而无需实际知道与之关联的特定日期。我正在使用java.sql.time来存储数据。
long timeInMillis = 43200000; //This is 12 hours in milliseconds.
Time time = new Time(timeInMillis);
无论出于何种原因,这给我的时间是07:00:00,应该是12:00:00。我假设这是因为在设置时间变量时,它基于特定日期之后的时间量。 如何在未实际使用预定义日期的情况下设置时间变量?
我这样做的原因是因为我想在数据库中存储一周和一个时间范围。因此,12:00之间的星期日在12:00:00和13:00:00之间为0。我希望能够将实际日期值与数据库进行比较,并查看日期是否介于基于日期星期几的时间段之间,而不管月份或年份。对于每个可能的工作日和时间,在数据库中存储完整日期将导致数千个不必要的条目。
答案 0 :(得分:1)
无论出于何种原因,这给我的时间是07:00:00,应该是12:00:00。我假设这是因为在设置时间变量时它是基于特定日期之后的时间量
由于TimeZone
差异可能会发生。保存和检索值时检查时区信息。
答案 1 :(得分:0)
这可能是一个时区问题,但我通过将时间值作为字符串传递到数据库中来解决问题。除非时区属性很重要,否则最好在这种情况下使用物理字符串。
String startTime = "12:00:00";
String endTime = 01:00:00;
如果时区很重要,我假设使用最佳方法,除非您正在预先设定日期对象,否则将直接在当前会话的mysql语句中设置时区。更多细节可以在这里找到:How do I set the time zone of MySQL?
编辑:最终结果显示这实际上不是时区问题(尽管在其他情况下可能是这样,所以不要诋毁调整时区)。我错误地计算了毫秒的时间。