Как получить день от JSON DarkSky swift

Я хочу сделать еженедельный прогноз в приложении Weather (воскресенье:, понедельник: и т. Д.). Поэтому я делаю это с DarkSky, но я заметил что-то странное.

"daily": { "summary": "Light rain throughout the week, with temperatures bottoming out at 48°F on Sunday.", "icon": "rain", "data": [ { -> "time": 1453363200, <- 

Нет значения, которое говорит имя дня, только это свойство называется «время». Я предполагаю, что он представляет секунды, но я не уверен, как получить запрашиваемый день. Как я могу определить определенный день из этого?

Альтернативой предоставленным ответам является использование DateFormatter, который также позаботится о локализации, и ему не нужно будет указывать DateComponents.

Это взято с игровой площадки

 let date = Date(timeIntervalSince1970: 1453363200) // -> "Jan 21, 2016, 8:00 AM" let formatter = DateFormatter() formatter.dateFormat = "EEEE" let day = formatter.string(from: date) // -> "Thursday" 

Если вы хотите посмотреть, какие еще строки DateFormat есть, вы можете увидеть действительно удобную ссылку на http://nsdateformatter.com .

В общем, хотя вы хотите избежать жесткого кодирования ваших форматов дат для представления чего-то большего, чем простой вывод, такой как этот. в этом случае установка свойств dateStyle и timeStyle является гораздо лучшим способом представления с использованием видимых дат, которые соответствуют культуре и языку.

Значение представляет временную метку UNIX (секунды с 1/1/1970), вы можете создать дату с:

 let date = Date(timeIntervalSince1970: 1453363200) // January 21, 2016 9:00 am 

Сначала введите строку в формат Date (из ответа вадиан ):

 let date = Date(timeIntervalSince1970: 1453363200) 

Затем вы можете использовать Calendar для извлечения компонентов даты:

 let components = Calendar.current.dateComponents([.weekday], from: date) let weekday = components.weekday 

Первый аргумент dateComponents принимает массив элементов из перечисления Calendar.Component .

Например, если вы хотели бы час, минуту, второй и рабочий день, вы бы сделали что-то вроде:

 let components = Calendar.current.dateComponents([.hour, .minute, .second, .weekday], from: date) let hour = components.hour let minute = components.minute let second = components.second let weekday = components.weekday // ...etc 

Обновить

Обратите внимание, что .weekday возвращает целое число, соответствующее индексу дня недели (локализованному).

Если вы хотите weekdaySymbols фактическое имя дня (например, понедельник, вторник и т. Д.), Вам нужно получить доступ weekdaySymbols свойствам Calendar weekdaySymbols (который также локализован).

 let weekdayName = Calendar.current.weekdaySymbols[weekday ?? 0] 

( weekday является обязательным, поэтому я использовал значение по умолчанию 0 )

  • iOS - Mapbox с кластеризацией, MGLSymbolStyleLayer не показывает пользовательские изображения
  • Быстродействующий эквивалент статического выражения Objective-C
  • Можно ли отключить кнопки громкости в приложениях iOS?
  • CosmicMind / Material - Как вызвать pushViewController в NavigationDrawerController?
  • как я могу добавить представление аннотации к булавке на моей карте яблок при использовании кластеризации маркеров в swift?
  • Где поставить super.init (), когда init () также инициализирует переменную-член и ссылается на "self"
  • Какова правильная кодировка URL-адреса iOS для символа «+»?
  • Как повернуть UILabel вверх дном в XCode, используя Swift?
  • отображение элементов массива в табличном представлении с быстрым
  • performSegue - останавливает ли дальнейшее выполнение кода?
  • Изменение цвета оттенка при нажатии uibutton в Swift
  • Interesting Posts

    Gap Above Bottom Tab Bar – встроенный навигационный контроллер + встроенный TableViewController

    UINavigationController возвращает ноль

    Как веб-сайт YouTube автоматически запускает воспроизведение видео на мобильном Safari без участия пользователя?

    Как создать событие UITextField программно в swift?

    Swift 3: Как настроить UINavigationBar setBackgroundImage в AppDelegate

    Как изменить направление анимации ViewController на PopViewController

    GREYActionBlock возвращает свойство определенного элемента, не работающее

    Заменить часть атрибута UITextView

    Прокрутка дочернего прокрутки только в том случае, когда заканчивается просмотр прокрутки

    Нить NSStream

    Предикат для многих-для-многих

    Есть ли хорошие шаблоны приложений с открытым исходным кодом для iOS?

    Какой метод вызывал приложение, когда я нажимаю элемент уведомления (в панели уведомлений), когда приложение находится в фоновом режиме?

    Использование UIPageViewController с несколькими представлениями

    Titanium Appcelerator через корпоративный прокси-сервер

    Давайте будем гением компьютера.