WCF преобразование времени на основе часового пояса автоматически

Эта любая справка? http://www.arsgeek.com/2006/09/19/ubuntu-tricks-how-to-generate-a-list-of-installed-packages-and-use-it-to-reinstall-packages/ . То, что это объясняет, - то, как добраться, Ubuntu на Вашем ноутбуке также дают Вам список файлов, что установлено, и затем использовать тот список на другом ПК для установки того же самого программного обеспечения. Я, возможно, неправильно понял Ваш вопрос хотя! Обновление: этим примером могло бы быть еще более легкое использование инструмента APTonCD: http://www.ubuntugeek.com/create-backup-of-all-installed-packages-using-aptoncd-in-ubuntu.html

Обновление 8-го мая: Если я понимаю затем, Вам установили Ubuntu на внешнем жестком диске Вашего ноутбука, и Вы хотите к тотализатору это вокруг Вашим друзьям и устанавливаете Ubuntu от портативного жесткого диска на их ПК.

6
задан 31 August 2009 в 08:13
поделиться

1 ответ

Преобразуйте ваши отправленные из службы WCF в UTC, и когда вы создаете новое время в своем клиенте, укажите их как вид UTC. Это позволит привязать время к универсальному стандартному часовому поясу. Вы можете отобразить время для своего клиента и обязательно идентифицировать его как время UTC. Это устранит любые несоответствия или двусмысленность относительно того, что это за время на самом деле.

DateTime serverTimeRaw = myService.GetServerTime();
DateTime serverTimeUTC = new DateTime(serverTimeRaw.Ticks, DateTimeKind.Utc);
Console.WriteLine(serverTimeUTC); // Prints server time as UTC time

Если вам действительно нужно представить время в соответствующем часовом поясе, вам нужно будет отправить информацию о часовом поясе вместе с DateTime. Я бы рекомендовал создать тип, который инкапсулирует обе части информации и возвращает их, а не сам DateTime. Информация о часовом поясе не является внутренним компонентом DateTime. Это две разные проблемы, и они дают составное значение только в том случае, если оно действительно составлено.

class ZonedDateTime
{
    public DateTime DateTimeUtc { get; set; }
    public TimeZoneInfo TimeZone { get; set; }

    public DateTime ToDateTime()
    {
        DateTime dt = TimeZoneInfo.ConvertTime(DateTimeUtc, TimeZone);
        return dt;
    }
}

// ...

ZonedDateTime zdt = myService.GetServerZonedTime();
DateTime serverTimeActual = zdt.ToDateTime();
3
ответ дан 17 December 2019 в 18:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: