JavaでcurrentTimeMillisを日付に変換する方法は?
サーバーで生成された特定のログファイルにミリ秒があります。ログファイルが生成されたロケールもわかっています。問題は、ミリ秒を指定された形式の日付に変換することです。そのログの処理は、異なるタイムゾーンにあるサーバーで行われています。"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