เนื่องจากผมทำการพัฒนา 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
ขอบคุณครับสำหรับความรู้
ตอบลบ