将Java日期转换为历元会产生错误的结果
我正在使用以下代码将java日期对象转换为历元:将Java日期转换为历元会产生错误的结果,java,date,format,converter,epoch,Java,Date,Format,Converter,Epoch,我正在使用以下代码将java日期对象转换为历元: String str = "" + date; SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss.SSS"); Date formateDate = df.parse(str); long epoch = formateDate.getTime(); return epoch; 如果我用值
String str = "" + date;
SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss.SSS");
Date formateDate = df.parse(str);
long epoch = formateDate.getTime();
return epoch;
如果我用值2013-04-26 08:34:55.705
来测试它,那么它给出的长度为1359189295705
,实际上是Sat,2013年1月26日08:34:55 GMT
,但今天是星期五,为什么它说它是2013年1月26日的星期六。它使用的是一月而不是四月。1月26日确实是一个星期六。它给了您错误的月份,因为您的日期格式错误:
yyyy-mm-dd HH:mm:ss.SSS
本月您使用的是mm
,此时您应该使用mm
。日期格式应为:
yyyy-MM-dd HH:mm:ss.SSS
您的格式没有在任何地方指定月份,因此可能只是默认为一月。它使用的是一月而不是四月。1月26日确实是一个星期六。它给了您错误的月份,因为您的日期格式错误:
yyyy-mm-dd HH:mm:ss.SSS
本月您使用的是mm
,此时您应该使用mm
。日期格式应为:
yyyy-MM-dd HH:mm:ss.SSS
您的格式没有在任何地方指定月份,因此可能只是默认为一月。月份的格式错误,应该是
yyyy-MM-dd
,因此您默认为第一个月。月份的格式错误,应该是yyy-MM-dd
,因此您默认为第一个月