วิธีการแปลง 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