2017-01-22 17 views
1

В течение жизни я не могу понять, как преобразовать строку даты, возвращающуюся из API Fitbit, в объект NSDate/Date на iOS.Синхронизация строки даты из Fitbit API

дата строка в следующем формате:

2017-01-21T10:39:43.000 

API-интерфейс, я использую документирована здесь: https://dev.fitbit.com/docs/devices/, и каждое устройство возвращается со свойством «lastSyncTime» в формате JSON.

Я пробовал несколько разных форматов даты, которые сохраняют значение nil для даты.

  let formatter = DateFormatter() 
//  formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ" 
//  formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss'Z'" 
//  formatter.dateFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'" 
//  formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssz" 
//  formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSz" 
     formatter.dateFormat = "yyyy-MM-dd" 
     let date = formatter.date(from: lastSyncTime) 

Я пробовал все эти разные форматы даты безрезультатно.

Любая помощь была бы принята с благодарностью здесь. Благодарю.

+1

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

ответ

2

Используйте этот форматтер, чтобы разобрать его.

let formatter = DateFormatter() 
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS" 
formatter.date(from: dateString) 

Я надеюсь, что это помогает

+0

Бум! Это тот! Спасибо :) – cgossain

+0

Имейте в виду, что это интерпретирует строку даты в локальном часовом поясе пользователя, которая может быть или не соответствовать правилу API. – rmaddy

+0

Я не думаю, что приведенное выше время «2017-01-21T10: 39: 43.000 » имеет в нем значение часового пояса. – Sandeep

1

Это работает для меня:

import Foundation 

let date = "2017-01-21T10:39:43.000" 
let formatter = DateFormatter() 

formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS" 
let formatDate = formatter.date(from: date) 

print(formatDate!) 

Выход:2017-01-21 16:39:43 +0000