Как преобразовать currentTimeMillis в дату в Java?

У меня есть миллисекунды в определенном файле журнала, созданном на сервере, я также знаю локаль, из которой был создан файл журнала, моя проблема состоит в том, чтобы преобразовать миллисекунды в дата в указанном формате. Обработка этого журнала происходит на сервере, расположенном в другом часовом поясе. При преобразовании в "SimpleDateFormat" программа принимает дату машины, поскольку такая форматированная дата не соответствует правильному времени сервера. Есть ли способ сделать это элегантно?

long yourmilliseconds = 1322018752992l;
        //1322018752992-Nov 22, 2011 9:25:52 PM 

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss,SSS",Locale.US);

GregorianCalendar calendar = new GregorianCalendar(TimeZone.getTimeZone("US/Central"));
calendar.setTimeInMillis(yourmilliseconds);

System.out.println("GregorianCalendar -"+sdf.format(calendar.getTime()));

DateTime jodaTime = new DateTime(yourmilliseconds, 
                    DateTimeZone.forTimeZone(TimeZone.getTimeZone("US/Central")));
DateTimeFormatter parser1 = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss,SSS");

System.out.println("jodaTime "+parser1.print(jodaTime));

Вывод:

Gregorian Calendar -2011-11-23 08:55:52,992
jodaTime 2011-11-22 21:25:52,992
132
задан nbro 29 April 2015 в 17:30
поделиться