หน้าเว็บ

วันเสาร์ที่ 22 พฤศจิกายน พ.ศ. 2557

แก้ปัญหา time zone ด้วยการ set JVM Time Zone : java

ปัญหา

       เนื่องจากผมทำการพัฒนา java web application และได้ทำการเช่า cloud server (VPS : Virtual Private Server) อยู่ที่ต่างประเทศ  ปัญหาที่เจอคือเรื่องของเวลา  ที่ไม่ตรงกัน  ระหว่าง client (browser) และ server  ทำให้การบันทึกข้อมูลลง database มีความผิดเพี้ยนไปจากความเป็นจริง

วิธีแก้

        ผมลอง search หาข้อมูลเพื่อแก้ไขปัญหาดังกล่าว  มีคนนึงแนะนำว่า  ลอง set time zone ให้ JVM ดู น่าจะแก้ได้  ผมเลยลองทำตาม  ปรากฎว่าได้จริงๆ ครับ  ซึ่ง set ค่าให้ JVM ดังนี้

-Duser.timezone=Asia/Bangkok

พอดีผมใช้ Glassfish Web Application Server  การ set ค่าเลยค่อนข้างง่าย เพราะมัน set ที่ GUI ได้เลย


คำถาม

        แล้วเราจะรู้ได้ยังไง ว่าเราจะเอาค่า time zone id มาจากไหน

คำตอบ

        วิธีการของผมคือนี่เลยครับ
for(String tz : TimeZone.getAvailableIDs()){
    LOG.debug("time zone --> {}", tz);
}
แค่นี้เราก็ได้ค่า time zone id ทั้งหมดมาแล้วครับ ซึ่งก็ขึ้นอยู่กับว่า  เราจะ set time zone เป็นของอะไร
ในที่นี้ผมเลือกเป็น Asia/Bangkok

thank you : http://stackoverflow.com/questions/2493749/how-to-set-a-jvm-timezone-properly

1 ความคิดเห็น: