在Java中将Date转换为Milliseconds

Aji*_*ith 1 java date milliseconds

我需要将Date转换为相应的Milliseconds格式.我在Java中使用类的getTime()方法Date.但产生的毫不是我的实际日期.这比我的约会少了一天.例如,

我有22-Nov-2014.如果我将此日期转换为毫秒格式,则1,416,594,600,000生成.实际上这个值对应于21-Nov-2014.

请帮我得到一个精确的毫秒值对应Date于java中的一个.

Jon*_*eet 10

1416594600000对应2014-11-21T18:30:00Z.换句话说,2014年11月21日下午6点30分,UTC.Epoch Converter是检查这类内容的绝佳资源.

现在,Date对象本身没有任何时区信息.它只代表一个时间点.听起来你的"2014年11月22日"价值可能是当地时区的午夜(印度?).如果您从许多不同的时区生成值,并且您没有存储哪个时区符合哪个值,那么您在这里基本上丢失了一些信息.

如果你只想表示一个日期(而不是一个时间点),但是你必须将它存储为毫秒 - 自 - unix-epoch值,那么将该日期的午夜存储在UTC中可能是有意义的,虽然你也应该清楚地说明这就是你正在做的事情.如果可以,您应该以某种方式存储该值,使其更明显,这是一个日期 - 例如DATE在数据库中使用字段.如果你确切地知道你正在建模什么数据,那么日期和时间的工作往往并不像我们所担心的那么难,并且在你的代码中随处可见.

为了让事情更清晰的一种方法是使用一个良好的日期/时间API,它可以让你代表更多种类的数据不是java.util.Datejava.util.Calendar做.Joda Time对此有好处,Java 8有新的java.time.*API.我强烈建议你尽快转到其中一个.