Nano Hash - криптовалюты, майнинг, программирование

С# UTC для пользователей по местному времени

У меня есть сайт, на котором пользователи могут публиковать сообщения. Пользователи могут быть со всего мира, поэтому, когда они публикуют сообщения, я сохраняю дату публикации как DateTime.UtcNow. Я использую подключаемый модуль JQuery time ago, чтобы показать опубликованные данные, похожие на переполнение стека (1 минуту назад и т. д.). Но я не уверен, как преобразовать дату, которую я сохранил в системе, в локальное время пользователей? Вот что я использую:

public static MvcHtmlString ConvertToLocalTime(this HtmlHelper htmlHelper, DateTime date)
    {
        DateTime convertedDate = DateTime.SpecifyKind(DateTime.Parse(date.ToString()),DateTimeKind.Utc);
        return MvcHtmlString.Create(convertedDate.ToLocalTime().ToString());
    }

Это позволяет преобразовать время в локальное время серверов, но мне это нужно для местного времени пользователей. Что я делаю неправильно? Я использую .NET MVC 2 и .NET 4.0.


Ответы:


1

В общем, вы не будете знать точный часовой пояс пользователя на стороне сервера. Вместо того, чтобы пытаться преобразовать время в местное время пользователя на стороне сервера, отправьте время клиенту в формате UTC, и пусть клиент преобразует время. Плагин TimeAgo делает это автоматически, пока вы указываете время в полном формате ISO8601:

<abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr>

Z в конце отметки времени важен; это означает UTC.

01.11.2010
  • Спасибо за помощь! Я использую AJAX для публикации, и мне интересно, работает ли TimeAgo с .Live? 03.11.2010
  • интересный факт - буква Z в конце дает ему общее название, зулусское время :) 18.04.2011

  • 2

    У вас есть культура для текущего пользователя? Если это так, вы можете преобразовать их часовой пояс, используя код из C# - Convert UTC /время по Гринвичу в местное время

    01.11.2010
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..