Tôi có một loạt thời gian mà tôi theo dõi cho ứng dụng của mình. Tất cả đều ở thời gian UTC. Đối với một phần của ứng dụng của tôi, tôi muốn gửi email với một trong những thời gian này, nhưng được chỉnh sửa để ở trong múi giờ cụ thể đó.C# Thời gian: Chuyển đổi cho các múi giờ khác nhau
Chỉ có hai lĩnh vực chính mà tôi sẽ đối phó với, bờ biển phía đông và Texas (Dallas và Huston)
tôi cũng có thể làm cho một datetime mới khi tôi gửi email này để có được những múi giờ miền Đông (DateTime timestamp = DateTime.Now;
)
Câu hỏi của tôi là thế này:
Nếu người dùng nằm trong khu vực texas làm thế nào tôi có thể chuyển đổi thời gian của tôi từ phía đông với thời gian (1 giờ ít hơn)?
tôi đã cố gắng một cái gì đó như thế này:
//Convert timestamp to local time
TimeSpan ts = TimeZone.CurrentTimeZone.GetUtcOffset(timestamp);
timestamp.Add(ts);
timestampString = timestamp.ToString();
Nhưng điều đó không làm việc. Tôi cũng biết rằng dòng này không hợp lệ:
timestamp.Hour = timestamp.Hour - 1;
Bạn nên tránh DateTime.Now, và thay vào đó sử dụng DateTime.UtcNow. DateTime.Now có thể làm bạn ngạc nhiên một ngày, với múi giờ sai hoặc tiết kiệm ánh sáng ban ngày sai. –