Como posso converter essa string "2016-04-14T10:44:00+0000"
em um NSDate
e manter apenas o ano, mês, dia, hora?
O T
meio disso realmente desperta o que estou acostumado a trabalhar com datas.
swift
nsdate
nsdateformatter
asheyla
fonte
fonte
Respostas:
Converta a string ISO8601 para a data
Obter os componentes de data para ano, mês, dia e hora a partir da data
Por fim, crie um novo
Date
objeto e retire minutos e segundosConsidere também o formatador de conveniência
ISO8601DateFormatter
introduzido no iOS 10 / macOS 12:fonte
.hour
Tente a seguinte data Format.
Espero que ajude..
Swift 4.1:
fonte
No Swift 4.1, você pode:
fonte
Swift 3.0 - 4.2
fonte
Oi Você tem um formato T separado e depois converte como quiser
fonte
Apenas sua passagem sua
dateformate
e sua data, então você recebeYear,month,day,hour
. Informação extraObter ano
Obter mês
Obter dia
Obter hora
fonte
fazer função global
Função chamada e valor de passagem nela
e aqui está a saída
fonte
No swift4,
// saída: - 30 mar 2019 17:30
fonte
apenas Etapa 1> obtenha o valor String de JSON ou dataSource
Etapa 2> crie uma variável local e atribua-a.
Etapa 3> crie uma instância do DateFormatter.
etapa 4> chame o dateFormat de dateFormatter e forneça o dataType da data salva.
Etapa 5> Atribua a variável Local a esta variável para converter.
Etapa 6> forneça a data necessária Formate pelo código a seguir.
Etapa 6> Atribua-a ao rótulo / texto
Código:
fonte
Swift 5. Para ver se uma data passou:
fonte
Eu estava ficando louco com esse formato também.
Veja a solução abaixo.
Sua String que veio de suas costas ou de outra fonte:
Identifique o formato da data
Agora que você tem a data como Date (), pode mudar para o formato que desejar usando o formatDate.string
Resultado:
fonte
Por favor, use uma biblioteca de análise ISO8601 para fazer isso. Existem muitas maneiras de codificar a string. Não confie em um formato específico e não confie no servidor enviando sempre o mesmo. Os problemas começam com o 'Z' no final e se estendem por todas as variedades do padrão. Uma biblioteca de análise manipulará todos os casos e sempre fornecerá uma conversão segura - enquanto uma sequência de formatação fixa provavelmente falhará no futuro.
Você pode usar uma dessas bibliotecas. Eles também estão disponíveis no CococaPods:
https://github.com/boredzo/iso-8601-date-formatter/
https://github.com/malcommac/SwiftDate
Dê uma olhada nas implementações. Ambos têm várias centenas de linhas - por um bom motivo.
Com relação à pergunta: Você pode retirar os componentes da data a partir da data usando NSDateComponents. O exemplo no site cobre exatamente o seu caso.
https://developer.apple.com/documentation/foundation/nscalendar/1414841-components?language=objc
Esteja ciente de que a conversão da sua data levará em consideração o fuso horário. Você pode definir explicitamente o 'código do idioma' do NSCalendar.
fonte
Basta usar o SwifterSwift.
fonte