ฉันต้องการวันที่ 5 เดือนที่แล้วจากปัจจุบันด้วยวันแรกของเดือน ฉันใช้รหัสนี้เพื่อทำ:
val date = Calendar.getInstance()
date.add(Calendar.MONTH, -5)
date.set(Calendar.DAY_OF_MONTH, 1)
date.set(Calendar.HOUR_OF_DAY, 0)
date.set(Calendar.MINUTE, 0)
date.set(Calendar.SECOND, 0)
ปกติแล้วจะทำงานได้ดี โดยเริ่มจาก 2018-08-10T15:46:53+02:00
จำเป็น 2018-03-01T00:00:00+01:00
แต่หากฉันเปลี่ยนเขตเวลาเป็น GMT+7 ให้ดำเนินการแอปต่อและเรียกใช้โค้ดนี้ มันทำให้ฉันได้ผลลัพธ์แปลกๆ เมื่อสองสามวันก่อนที่จำเป็น: 2018-02-28T20:00:00+01:00
หากฉันลบแอปออกจากหน่วยความจำและเริ่มต้นใหม่อีกครั้งหลังจากเปลี่ยนเขตเวลา ทุกอย่างทำงานได้ดี