Como eu converteria um NSString
" 01/02/10 " como (01 de fevereiro de 2010) em um NSDate
? E como eu poderia transformar as NSDate
costas em uma corda?
ios
objective-c
nsstring
nsdate
cannyboy
fonte
fonte
Respostas:
Swift 4 e posterior
Atualizado: 2018
String até a data
Date to String
Swift 3
Atualizado: 20 de julho de 2017
String para NSDate
NSDate para String
Rápido
Atualizado: 22 de outubro de 2015
String para NSDate
NSDate para String
Objetivo-C
NSString para NSDate
NSDate converte em NSString:
fonte
NSDate *dateFromString = [[NSDate alloc] init];
se atribuir um novo valor ao ponteiro na próxima linha ???ATUALIZAÇÃO 2019 (Swift 4):
Fez uma
Date
extensão para isso. Ele usa emNSDataDetector
vez deNSDateFormatter
.Muito agradável, até reconhece coisas como "amanhã às 5" .
Vai como:
ATUALIZAÇÃO 2014:
Criou uma extensão NSString para isso.
Graças ao NSDataDetector , ele reconhece muitos formatos.
Parte do eppz! Kit , pegue a categoria NSString + EPPZKit.h do GitHub.
RESPOSTA ORIGINAL 2013:
Se você não tiver certeza (ou não se importa) com o formato da data contido na string, use o NSDataDetector para analisar a data .
fonte
NSString
->2013-09-11 01:31:22 +0000
converte paraNSDate
->2013-09-11 13:31:22 +0000
XCTAssertEqual(Date.FromString("2013-09-11 01:31:22 +0000"), Date.FromCalendar(2013, 9, 11, 1, 31, 22))
parece bem.Ao usar datas de formato fixo, é necessário definir o código de idioma do formatador de datas como
"en_US_POSIX"
.Retirado do Guia de Formatação de Dados
Swift 3 ou posterior
uso:
Analisando a data personalizada e convertendo a data de volta para o mesmo formato de sequência:
Aqui estão todos os elementos que você pode usar para personalizá-lo conforme necessário:
fonte
Por que não adicionar uma categoria ao NSString?
fonte
usar "10" para representar um ano não é bom, pois pode ser 1910, 1810, etc. Você provavelmente deve usar 4 dígitos para isso.
Se você pode alterar a data para algo como
Então você pode usar:
fonte
fonte
fonte
Se você deseja definir o formato, use o código abaixo:
fonte
Use este método para converter de
NSString
paraNSdate
:fonte
Se alguém está interessado em fazer algo assim no Swift hoje em dia, eu começo algo, embora não seja perfeito.
fonte
Data para NSString
NSString para NSDate
fonte
Você pode usar extensões para isso.
Portanto, enquanto a execução do código real será semelhante a seguir
Também existem alguns métodos padrão, mas acho que pode não funcionar no formato que você forneceu da documentação
fonte
A melhor prática é criar uma classe geral em que você coloque todos os seus métodos de uso geral, métodos úteis em quase todos os projetos e adicione o código sugerido pelo @Pavan como:
.. e assim por diante para todos os outros métodos úteis
Ao fazer isso, você começa a criar um código reutilizável limpo para seu aplicativo. Felicidades!
fonte
Conforme Swift 2.2
Você pode obter facilmente o NSDate do String e o String do NSDate. por exemplo
Primeiro formatador de data definido
Agora obtenha a data da string e vice-versa.
Agora aproveite.
fonte
NSString para NSDate ou NSDate para NSString
fonte
Os exemplos acima não foram escritos simplesmente para o Swift 3.0+
Atualização - Swift 3.0+ - Converter data em string
fonte
String até a data
Date To String
fonte