我正在尝试使用SimpleDateFormat对日期进行简单的转换。每当我运行该程序时,转换后我都会不断收到无效的日期。我已经在转换器中运行了时期戳(并且我也将日期存储在外部服务器中),所以我知道输出应该是什么,但是我仍然收到错误的转换。我在实验中尝试过对较长的epochTime进行多次数学更改,但都没有用。我确实知道[或至少基本上可以确定]我的纪元时间戳是以毫秒为单位存储的,因此需要* 1000的更改。这是我所拥有的:

String convertedTime = null;

//(1) //startTime = startTime/1000;  --none of these three manipulations solve the issue
//(2) //startTime = startTime * 1000;
//(3) //long change = (long) startTime * 1000;

Date d = newDate(startTime); //startTime is *long* parameter passed into method

SimpleDateFormat formatter = new SimpleDateFormat("mm-dd-yyyy 'at' hh:mm:ss");
convertedTime= formatter.format(d);


例如,如果纪元戳为1404327407738,但我不包括(1),(2),(3),则在下午01:56:47收到56-02-2014


包括(1)-1970年5月17日上午12:05:27
包括(2)-35-13-46471 at 05:35:38 AM
包括(3)-35-13-46471 at 05:35:38 AM(是的,我在此处替换了startTime的更改)


我应该在2014年7月2日下午01:56:47收到

最佳答案

格式字符串应为“ MM-dd-yyyy'at'hh:mm:ss”。

“ MM”表示年份中的月份,“ mm”表示小时中的分钟(请参见http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html)。

关于java - 迄今为止的纪元无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24558080/

10-10 23:15