Работа со временем и часовыми поясами - C#
Формулировка задачи:
Здравствуйте!
Происходят некоторые события, они регистрируются в программе (само событие, дата и время).
Периодически необходимо формировать отчеты по событиям, в зависимости от события необходимо формировать отчет в различных часовых поясах.
Например:
Обращения к серверу по HTTP, HTTPS, SSH, FTP и т.д.
Обращения к серверу по протоколу HTTP, HTTPS надо выводить UTC+0
Обращения к серверу по протоколу SSH надо выводить UTC+2
Обращения к серверу по протоколу FTP надо выводить UTC+3
...
1) Как правильно организовать хранение данных о времени (какой тип)?
2) Как хранить привязку для какого "протокола" какой часовой пояс?
3) Как правильно выводить время в соответствии с указанным часовым поясом?
class Events
{
/// <summary>
/// Своойство для хранения времени когда проихошло событие
/// </summary>
public DateTime EventsDate { get; set; }
//...
}
class MyProtocols
{
/// <summary>
/// Название протокола
/// </summary>
public string NameProtocols { get; set; }
/// <summary>
/// Часовой пояс в котором необходимо выводить в отчет,
/// какой тип свойства необходимо указывать тут?
/// </summary>
public object MyUTC { get; set; }
//...
}Решение задачи: «Работа со временем и часовыми поясами»
textual
Листинг программы
var localTime = DateTimeOffset.Now; var offset = TimeSpan.FromHours(-8); // PST var pstTime = localTime.ToOffset(offset);