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

Строка из даты работает, дата из строки не работает

Я беру NSDate и превращаю его в dateString. Но потом...

Когда я пытаюсь взять тот же dateString и превратить его обратно в NSDate, мои даты неверны.

NSDдата до dateString...

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MMM d, yyyy H:mm a"
let dateString = dateFormatter.stringFromDate(timeDate as! NSDate)
print("Date: \(dateString)")

Консоль:

Date: Mar 22, 2016 22:30 PM
Date: Mar 23, 2016 1:00 AM
Date: Mar 23, 2016 9:00 AM

dateString to plainDate...

let reverseDateFormatter = NSDateFormatter()
reverseDateFormatter.dateFormat = "MMM d, yyyy H:mm a"
let plainDate = reverseDateFormatter.dateFromString(dateString)
print("Date Reverse: \(plainDate)")

Консоль:

Date Reverse: Optional(2016-03-22 17:30:00 +0000)
Date Reverse: Optional(2016-03-23 05:00:00 +0000)
Date Reverse: Optional(2016-03-23 05:00:00 +0000)

  • 22:30 нет смысла 23.03.2016
  • Вам нужно выбрать формат 24 ч: мм или 12 ч ч: мм. 23.03.2016
  • @LeoDabus 22:30 не имеет смысла только из-за вечерней части? 23.03.2016
  • @LeoDabus Дата извлекается из CloudKit, который форматирует ее в 24 часа, но когда я отображаю дату в строке, она будет в 12-часовом формате, я пытаюсь понять, как я смогу выбрать между 24 часами. час и 12 час в этом случае. Если у вас есть какие-либо предложения с тем, что я описал, я был бы рад их услышать, спасибо! 23.03.2016

Ответы:


1

Когда вы конвертируете дату в строку, вы теряете информацию о часовом поясе, а затем не можете собрать ее вместе.

Есть ли какая-то причина, по которой вы не можете сохранить саму дату как NSDate, а затем использовать ее вместо перестроения даты из строки?

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

23.03.2016
  • Итак, процесс таков: дата и время извлекаются из CloudKit в 24-часовом формате. Затем я преобразовываю эту дату в строку, чтобы iPhone отображал ее в виде текста (используя часовой пояс телефонов пользователей, поэтому я не жестко кодировал дату и время на стороне CloudKit). Затем мне нужно передать строку даты в Watch, чтобы я мог использовать ее для отображения в виде строки и для упорядочения записей на временной шкале. 23.03.2016
  • Итак, где я начал сталкиваться с проблемой, так это на стороне часов. Поэтому, когда я отслеживал проблему, я решил, что позвольте мне просто попробовать все это на iPhone, чтобы увидеть, возникает ли проблема и там, когда я конвертирую строку обратно в NSDate. 23.03.2016
  • Я надеюсь, что это поможет и прояснит ситуацию. Дайте мне знать, что вы думаете, если у вас есть предложения, что мне следует изменить или что-то еще. Спасибо! 23.03.2016
  • @victorpulak, почему бы не сохранить дату как экземпляр NSDate, а затем передать ее часам? тогда вы все еще можете использовать NSDate, чтобы получить то, что вам нужно, а также можете отформатировать его как строку на часах? 23.03.2016
  • Попробую еще раз, большое спасибо за помощь! 24.03.2016

  • 2

    stringFromDate возвращает необязательную строку, но dateFromString возвращает необязательную дату. Условно разверните результат перед его печатью:

    если пусть результат = reverseDateFormatter.dateFromString (строка даты) { печать (результат)}

    23.03.2016
  • Классно хорошая информация! Дайте мне знать, если у вас есть какие-либо мысли по моему основному вопросу, который заключается в том, что даты просто разные. 23.03.2016
  • Болнад уже ответил на это - передайте NSDate в Watch, а не в String. 23.03.2016
  • Ps: или также передать информацию о часовом поясе 23.03.2016
  • Я попробую сделать это снова, и я также посмотрю, как передать часовой пояс (в качестве альтернативы, если я хочу сделать это таким образом), большое спасибо за помощь! 24.03.2016
  • Новые материалы

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

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

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

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

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

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

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