2016-11-03 11 views
0

Я занимаюсь разработкой метода, который будет получать UNIX метку времени и культуры:Преобразование UNIX Эпоху в Datetime в зависимости от культуры

public DateTime unixEpochToDateTime(long unixTimeStamp, string culture) { 
    ... 
} 

Пример вызова:

DateTime t = unixEpochToDateTime(1478181983, "es-ES"); 

Мне нужно преобразовать это время UTC между многими культур, без использования TimeZone.CurrentTimeZone, потому что этот метод будет запущен на сервере, а культура сервера всегда одинакова.

Например, если два пользователя запросят мой метод в EE.UU и в Великобритании, я получаю тот же UTC?

Я очень смущен.

+0

Как я по вашему вопросу (на данный момент). У вас есть временная метка unix, могу ли я предположить, что временная метка также находится в UTC или есть смещение, сохраненное с этой меткой времени? – Igor

+0

@Igor Timestamp - UTC. Благодаря! –

+0

Тогда почему бы не создать экземпляр 'DateTime' в utc? Также datetime имеет свойство для [Kind] (https://msdn.microsoft.com/en-us/library/shx7s921 (v = vs.110) .aspx), которое вы можете установить, что позволит вам указывать UTC (есть также перегрузка в конструкторе, где вы также можете установить его). См. Статический метод 'DateTime.SpecifyKind'. – Igor

ответ

0

Думаю, что вы можете попробовать nodatime. Он имеет много полезных методов.

+0

Я прочитаю документацию об этом , благодаря –

0

Проблема решена ...

Если .NET не предоставляет механизм, потому что это невозможно определить разницу времени UTC, основанный на культуре.

В основном потому, что культура может иметь разные часовые пояса.

Культура «es-ES», например, имеет 2 зоны: GTM + 0 для Канарских островов и UTC + 1 для Иберийского полуострова.

 Смежные вопросы

  • Нет связанных вопросов^_^