คำตอบมากมายที่นี่บ่งบอกว่าการจัดเก็บเป็น UTC แต่ระวังให้ดีด้วย ตัวอย่างเช่นหากคุณกำหนดเวลาการนัดหมายเวลา 12.00 น. แต่การนัดหมายเกิดขึ้นหลังจากการเปลี่ยนเป็นการปรับเวลาตามฤดูกาลจะเกิดอะไรขึ้น UTC จะไม่เก็บข้อมูลใด ๆ ว่า dst ทำงานอยู่หรือไม่เมื่อมีการจัดเก็บการนัดหมาย ระบบที่มีชื่อเสียงขนาดใหญ่จำนวนมากได้ทำข้อผิดพลาดนี้ซึ่งผู้ใช้ส่งอีเมลเวลา 9.00 น. ในฤดูร้อนและในฤดูหนาวเวลาที่ส่งจะแสดงเวลา 8:00 น. เนื่องจากการคำนวณย้อนกลับจาก UTC ขึ้นอยู่กับเวลาที่คุณดูเวลา ไม่เปิดเมื่อบันทึกวันที่และเวลา
ดีกว่ามากคือการถือว่าผู้ใช้ของคุณต้องการมีเวลาที่เขาเลือกเสมอ ไม่มีการแปลง UTC ไม่มีการแปลงเวลาไม่มีข้อมูลเขตเวลาไม่มีอะไร การนัดหมายเวลา 08:00 น. - 12:00 น. ในวันที่ 21 มีนาคม 2559 เป็นเพียงแค่นั้น อย่าใช้เวลาท้องถิ่นหรือเวลา UTC แต่ไม่ได้ระบุเวลา (ใน json สิ่งนี้ไม่มีทั้ง z หรือ + โดยทั่วไปใน. NET สิ่งนี้มี DateTime.Kind = DateTimeKind.Unspecified)
แน่นอนถ้ากรณีการใช้งานของคุณคือคุณเป็น บริษัท ที่จัดการประชุมกับใครบางคนจากเขตเวลาที่แตกต่างกันและคุณต้องการดูข้อมูลนี้ในปฏิทินของ บริษัท แต่ให้ผู้ใช้เห็นเวลาที่อยู่ในเขตเวลาของพวกเขา ซับซ้อนมากขึ้น เวลาจะต้องถูกต้องสำหรับคนที่แตกต่างกันในเขตเวลาที่ต่างกัน (ซัพพลายเออร์และลูกค้า)
ในกรณีเหล่านั้นคุณอาจต้องการบันทึกเมื่อการนัดหมายถูกบันทึกลงในฐานข้อมูลในเขตเวลาใดและหากรวม dst หรือไม่ ด้วยวิธีนี้คุณสามารถคำนวณเวลาท้องถิ่นกลับไปหาสิ่งอื่น ๆ ได้ไม่ว่าจะเป็นตอนนี้หรือสิ่งที่ตั้งใจจะเป็นในอดีต เนื่องจากเขตเวลาไม่คงที่ทำให้สิ่งต่าง ๆ มีความซับซ้อนมากยิ่งขึ้น
โชคดีที่นี้เป็นที่ที่ห้องสมุดเช่นhttp://nodatime.org/มาและจะขอแนะนำ พวกเขาทำงานกับวันที่อย่างต่อเนื่องมากขึ้น ถึงอย่างนั้นฉันก็ขอแนะนำให้คุณใช้ตัวแปรและตรรกะทั้งหมดในชุดข้อมูลของคุณในอินเทอร์เฟซของคุณเองโดยใช้อินเทอร์เฟซเพื่อให้สามารถเย้ยหยันได้แล้วคุณยังสามารถสลับตรรกะในภายหลังได้