Moment.js преобразование часового пояса C# .NET

Есть ли доступный плагин C#, который обрабатывает все часовые пояса moment.js.

Мне трудно сравнивать даты в бэкэнде, поскольку часовые пояса из moment.js не совпадают с часовыми поясами из.net DateTime.

Мне нужно преобразовать время в Utc, прежде чем сравнивать различные даты в разных часовых поясах. Я использую nodatime, и он может обрабатывать некоторые часовые пояса, но не все.

Благодарю.

РЕДАКТИРОВАТЬ: NodaTime обрабатывал большинство часовых поясов, но мне все еще нужно покрыть сокращения. Есть ли что-то для этого доступно?

Благодарю.

1 ответ

Решение

Таким образом, NodaTime обрабатывал часовые пояса Олсона, а также GMT ​​+, UTC и другие. Для сокращений я согласился с этим

public static DateTimeZone GetTimeZone(string id)
    {
        DateTimeZone timezone = DateTimeZoneProviders.Tzdb.GetZoneOrNull(id);

        if (timezone == null) {
            var instant = Instant.FromDateTimeUtc(DateTime.UtcNow);
            var source = DateTimeZoneProviders.Tzdb;
            id = source.Ids.Where(i => source[i].GetZoneInterval(instant).Name == id).FirstOrDefault();
            timezone = DateTimeZoneProviders.Tzdb.GetZoneOrNull(id);
        }

        return timezone;
    }
Другие вопросы по тегам