Tôi tự hỏi nếu có bất kỳ lý do tốt nào để lưu trữ thông tin thời gian trong bất kỳ điều gì khác mà UTC (GMT)? Tôi tin rằng đây là một nguyên tắc vững chắc cho tất cả các công nghệ phần mềm. Việc chuyển đổi thành giờ địa phương chỉ đơn thuần là một bản dịch xảy ra ở lớp giao diện người dùng cho mục đích hiển thị. Tôi cũng đã thấy các trường hợp cần dịch chuyển để thực hiện thuật toán một cách chính xác (để xử lý các thay đổi ngày nửa đêm, v.v.).Có bao giờ là lý do chính đáng để lưu trữ thời gian không có trong UTC không?
Trả lời
Tôi muốn nói tùy thuộc vào ứng dụng. Tôi làm việc trên các mô hình vật lý không gian của Ionosphere & Magnetosphere. Chúng tôi làm việc với thời gian địa phương từ tính, lưu trữ ngày & lần như Modified Julian Days.
Khi bạn chắc chắn rằng chỉ có giờ địa phương sẽ được sử dụng.
Thậm chí sau đó, có một trường hợp tốt được thực hiện để sử dụng UTC nếu có bất kỳ loại hoạt động suốt ngày đêm nào. Nếu không, xử lý crossover tiết kiệm ánh sáng ban ngày sẽ trở thành một PITA lớn. Tôi nói từ kinh nghiệm cay đắng. –
Hoặc nếu múi giờ có thể thay đổi. Giờ địa phương sẽ phải được cập nhật. –
Báo thức & các tác vụ được lên lịch đôi khi được lưu trữ theo giờ địa phương để chúng không bị ảnh hưởng bởi Giờ tiết kiệm ánh sáng ban ngày hoặc thay đổi múi giờ.
Có phải chúng/được lưu trữ/trong thời gian địa phương hoặc sẽ là một cách tốt hơn để có được UTC và có một hàm thành viên convertToLocalTime()? – Pete
@Pete: Hãy nghĩ về đồng hồ báo thức của tôi: Báo thức được đặt thành 7 giờ sáng theo giờ địa phương. Khi đồng hồ quay trở lại vào mùa đông, tôi không muốn bị đánh thức lúc 6 giờ sáng. Khi tôi đi công tác ở miền tây, tôi không muốn thức dậy vào nửa đêm chỉ vì 7 giờ sáng trở về nhà. – dave4420
@Dave Vâng, vì vậy bạn chỉ cần thay đổi TIME_ZONE + = n, vì vậy convertToLocalTime (currentUtc, TIME_ZONE, isDaylightSavingsTime) sẽ trả về giờ địa phương (mặc dù nó được lưu trữ nội bộ dưới dạng UTC). – Pete
Bao giờ? Tôi chắc chắn có những lý do tốt trong một số trường hợp bị cô lập. Nói chung, mặc dù, lưu trữ UTC là tốt hơn nhiều so với thời gian địa phương, vì vậy tôi sẽ coi UTC là vị trí mặc định trừ khi có một số xem xét đặc biệt.
Nói chung, tôi thấy tốt hơn khi sử dụng UTC. Đôi khi bạn có thể cần giờ địa phương. Sau đó, tôi thà đi với thông tin múi giờ UTC +.
Thời gian chung có thể cực kỳ phức tạp cho các sự kiện lặp lại và bạn nên phân tích rất cẩn thận các trường hợp sử dụng.
Hãy tưởng tượng một cuộc họp định kỳ, vào thứ Ba hàng tuần lúc 9:00 sáng. Nếu DST thay đổi, cuộc họp vẫn sẽ diễn ra lúc (mới) 9:00 sáng.
Nhưng không thêm vào cuộc họp một số người ở Pháp. Đối với họ cuộc họp là lúc 6:00 chiều. Và họ thay đổi DST theo một quy tắc khác.
Khi bạn thay đổi DST, họ không làm vậy, vì vậy trong một thời gian (cho đến khi Pháp thay đổi DST) ai đó phải "tắt": cuộc họp của bạn sẽ vào lúc 10 giờ sáng, thời gian của họ sẽ ở 6 giờ chiều hoặc giữ tại 9 giờ sáng và chuyển họ lúc 5 giờ chiều. Không có cách nào khác, máy tính không có gì để làm với nó.
Ứng dụng sẽ quyết định ai sẽ là "cố định"? Đây có phải là nhóm có hầu hết các thành viên không? (1 người ở Mỹ vs 20 ở Pháp?) Hay là về tầm quan trọng của người đó? (nếu 1 anh chàng ở Hoa Kỳ là Tổng Giám đốc?)
Làm cách nào để lưu trữ thông tin đó? Giải pháp tốt nhất của tôi là sử dụng UTC + một "múi giờ chính" Người dùng trong chiến thắng "múi giờ chính" (giữ nguyên cố định).
Mọi thứ có thể trở nên khá phức tạp, nhưng nói chung tôi đã tìm thấy UTC giải quyết nhiều probelems hơn giới thiệu.
+1 Trường hợp ví dụ tuyệt vời – Triptych
Hãy sửa tôi nếu tôi sai, nhưng tôi nghĩ rằng việc lưu trữ múi giờ tổng thể UTC + không giải quyết được vấn đề này về thay đổi DST. Ví dụ thực tế: 1 - Bạn cần lưu trữ ngày giờ "1 năm kể từ bây giờ trong 9 giờ sáng giờ NY". bạn tính toán nếu điều này trong UTC và lưu trữ nó trên DB của bạn cùng với múi giờ NY. 2 - Trước khi 1 năm trôi qua, NY thay đổi DST. Ngày ban đầu đó lúc 9 giờ sáng giờ NY không phải là cùng ngày mà chúng tôi đã lưu trữ. – fjsj
Trong hệ thống nhúng, bạn có thể nhận được thời gian từ một nguồn trong một số loại biểu mẫu "ve qua epoch".
Nếu thời gian được cập nhật tương đối thường xuyên và hiển thị ít thường xuyên, bạn có thể lưu trữ nó theo cùng cách mà nó được cung cấp cho bạn và chỉ chuyển đổi nó để hiển thị khi cần.
Nói chung, mặc dù, UTC là con đường để đi trừ khi có những cân nhắc khác.
UTC là tiêu chuẩn lưu giữ thời gian có độ chính xác và chính xác của TAI, nhưng với giây nhảy thêm vào trong khoảng thời gian không đều để cho phép nó theo dõi chặt chẽ thời gian mặt trời trung bình (UT1).
Nếu hệ thống bạn đang làm việc không thể xử lý giây nhuận, thì Bureau International des Poids et Mesures khuyến nghị TAI được sử dụng thay cho UTC.
Bây giờ bạn cần nhiều upvotes hơn cho điều này, tôi không hiểu tại sao mọi người nghĩ rằng thời gian posix là tuyến tính khi nó quay trở lại sau mỗi vài năm – Pacerier
Pacerier: Nó đi ngược? Geez. Tôi không biết điều đó. Tôi nghĩ rằng nó chỉ nhảy vọt về phía trước là kết quả của sự quay chậm của Trái đất. –
Nó đã thực sự không bao giờ nhảy về phía trước trước đây trong lịch sử (nó * có thể * trong tương lai) nhưng đã đi ngược trở lại trung bình 1,5 năm một lần. Nếu chúng ta có một đồng hồ bấm giờ tách ra sau mỗi nửa giây, thời gian sẽ diễn ra như sau: '58.0 58.5 59.0 59.5 00.0 00.5 00.0 00.5 01.0' http://en.wikipedia.org/wiki/Unix_time – Pacerier
- 1. Có bao giờ có lý do chính đáng để sử dụng Sắp xếp Chèn không?
- 2. Có lý do nào cho cột Khóa chính không bao giờ được sử dụng không?
- 3. Có lý do chính đáng nào để Setter.Value không phải là ContentProperty không?
- 4. Cách lưu trữ ngày tháng không có thời gian trong Dữ liệu chính
- 5. Có lý do chính đáng nào khiến `deleteBy` không có loại chung nhất?
- 6. Có lý do chính đáng để sử dụng tài sản/lĩnh vực công cộng không?
- 7. Lưu trữ ngày giờ UTC trong cơ sở dữ liệu
- 8. Có lý do chính đáng nào để cho phép AssemblyVersion và AssemblyFileVersion khớp nhau không?
- 9. Có lý do chính đáng nào khiến #region và #endregion không hoạt động trong F #
- 10. Lưu trữ ngày và thời gian trong UTC và chuyển đổi giờ địa phương bằng PHP/MySQL
- 11. Lưu trữ Utc và giờ địa phương ở Mongo
- 12. Cách xử lý thời gian lưu trữ trong SQL
- 13. Có lý do chính đáng nào cho tiêu đề ListView chiếm vị trí không?
- 14. Có lý do chính đáng nào để chúng tôi không phải lúc nào cũng sử dụng Google API SDK không?
- 15. Thời gian Joda DateTime không chính xác lưu trữ trong cơ sở dữ liệu
- 16. Có lý do chính đáng để 'tư nhân' hoạt động theo cách của Ruby?
- 17. Cách tốt nhất để lưu trữ datetimes (dấu thời gian) trong CouchDB là gì?
- 18. Có bao giờ là ý hay khi không có khóa chính 'id' cho bảng?
- 19. Làm thế nào để có được dấu thời gian Unix trong MySQL từ thời gian UTC?
- 20. Trong .NET, GCMaxGeneration có bao giờ là không?
- 21. Asp.net WebAPI deserializes chuỗi thời gian tính theo giờ UTC thời gian cục bộ
- 22. Có lý do chính đáng nào để sử dụng các tham số cho các trường bóng không?
- 23. Yêu cầu chính xác về thời gian lưu trữ tự động là gì?
- 24. Python: Chuyển đổi thời gian UTC thành dấu thời gian UTC
- 25. Có lý do chính đáng để khởi tạo biến tĩnh trên mọi cuộc gọi đến hàm được xác định không?
- 26. Làm cách nào để có được thời gian UTC chính xác với Python?
- 27. Cách chuyển đổi thời gian chính xác theo múi giờ?
- 28. Giờ clock_gettime là giờ UTC hay múi giờ địa phương?
- 29. Trong thời gian Joda làm thế nào để chuyển đổi múi giờ mà không cần thời gian
- 30. GMT có giống với UTC không?
Giả sử bạn đang thiết kế máy chủ để quản lý một số sự kiện trong thế giới thực. Nói một sự kiện diễn ra "ở Los Angeles, mỗi Thứ Ba từ 2 giờ chiều đến 3 giờ chiều". Làm thế nào để bạn lưu trữ trong UTC? –