Взгляните на язык Common LISP Allegro. Это имеет некоторые библиотеки, включая веб-сервер, специально для веб-разработки.
GMT ] более или менее равно UTC (всемирное координированное время) (если вы не имеете дело с долями секунд, разницы нет). DateTimeKind , перечисление, которое позволяет вам выбирать, отображать ли время в вашем местном часовом поясе или в формате UTC, встроено в конструктор DateTime . Используя это, мы можем получить эквивалент GMT.
Конструктор , который мы собираемся использовать, выглядит следующим образом:
DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, DateTimeKind kind)
или (в одном есть аргумент в миллисекундах, в другом его нет):
DateTime(int year, int month, int day, int hour, int minute, int second, DateTimeKind kind)
Чтобы получить DateTime для 1 января 1970 г. по всемирному координированному времени , мы можно использовать:
DateTime inGMT = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); //using 1st constructor above
или :
DateTime inGMT = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); //using 2nd constructor above
ПРИМЕЧАНИЕ : Ниже приводится содержимое перечисления DateTimeKind:
ОБНОВЛЕНИЕ : Томас Левеск предложил очень творческое решение в своем ответе, однако я не уверен, является ли это наиболее прямым методом и жизнеспособным ли это метод, который можно использовать в любое время. зона. Я думаю, он говорит, что вы можете вычислить DateTimeOffset из DateTime.Now и DateTime.UtcNow и применить вычисленное смещение к 1 января 1970 года в ваш собственный часовой пояс, который дает вам время в формате UTC / GMT. Я не уверен, что существуют простые методы для вычисления смещения к другим часовым поясам , и тогда это становится немного избыточным для вопроса.
ОБНОВЛЕНИЕ №2 : Я добавил еще один конструктор DateTime который выполняет то же самое, но не имеет аргумента миллисекунды. Они взаимозаменяемы.
Проверьте структуру DateTimeOffset
РЕДАКТИРОВАТЬ: На самом деле, после дальнейшего чтения о DateTimeOffset
, это может быть не самое подходящее решение для того, что вы пытаетесь сделать ... Я думаю, что это наиболее прямой ответ на ваш вопрос:
DateTime epoch = DateTime.SpecifyKind(new DateTime(1970, 1, 1), DateTimeKind.Utc);
GMT для всех практических целей совпадает с UTC.
Это означает, что вы можете просто использовать один из конструкторов DateTime
который принимает параметр DateTimeKind
, устанавливая для него значение DateTimeKind.Utc
.
DateTime gmt = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);