Apenas comecei com o playground. Estou tentando criar um aplicativo simples.
Eu criei um objeto de data como este:
var date = NSDate()
Como posso obter a hora atual? Em outras línguas, eu posso fazer algo assim:
var hour = date.hour
Mas não consigo encontrar nenhuma propriedade / método como esse. Eu encontrei um método dateWithCalendarFormat
. Devo usar isso? Se sim, como?
let components = calendar.components(.NSCalendarUnit.Year.union(NSCalendarUnit.Minute), fromDate: date)
, a barra vertical não pode mais ser usada aqui.let components = calendar.components(NSCalendarUnit.Year.union(NSCalendarUnit.Minute), fromDate: date)
removeu o extra '.' Antes de NSCalendarUnitlet components = calendar.components([ .Hour, .Minute, .Second], fromDate: date)
Testado com Swift 4
Obtendo a data e hora atuais
Você pode obter a data e hora atuais de maneira simples:
No entanto,
Date
é um número de ponto flutuante de 64 bits que mede o número de segundos desde a data de referência de 1 de janeiro de 2001 às 00:00:00 UTC . Eu posso ver esse número para o datetime atual usandoNo momento da redação deste artigo, ele retornou
497626515.185066
, provavelmente não exatamente o que você estava procurando. Continue lendo.Criando outra data e hora
Método 1
Se você souber o número de segundos antes ou depois da data de referência, poderá usá-lo.
Método 2
Obviamente, seria mais fácil usar coisas como anos, meses, dias e horas (em vez de segundos relativos) para criar um
Date
. Para isso, você pode usarDateComponents
para especificar os componentes eCalendar
criar a data. OCalendar
dá oDate
contexto. Caso contrário, como saberia em que fuso horário ou calendário expressá-lo?Outras abreviações de fuso horário podem ser encontradas aqui . Se você deixar em branco, o padrão é usar o fuso horário do usuário.
Método 3
A maneira mais sucinta (mas não necessariamente a melhor) pode ser usar
DateFormatter
.o normas técnicas Unicode mostrar outros formatos que
DateFormatter
suporta.Exibindo a Data e Hora
Método 1
Se você deseja exibir apenas determinados componentes da data ou hora, pode usar
CalendarUnit
para especificar os componentes dos quais deseja extrairDate
.Veja esta resposta também.
Método 2
O método 1 forneceu os componentes, mas seria muito trabalhoso formatar esses números para todos os estilos, idiomas e regiões. E você não precisa. Isso já foi feito para você com a
DateFormatter
turma.Aqui está uma continuação do código acima que mostra mais opções de formatação:
Porém, lembre-se de que isso é para inglês com a região definida para os EUA. Para outros idiomas e regiões, a formatação será diferente.
Um estudo mais aprofundado
fonte
Você também pode usar o método de conveniência do NSDateFormatter, por exemplo,
fonte
O Swift facilita muito a criação e o uso de extensões. Crio um
sharedCode.swift
arquivo e coloco enumerações, extensões e outras coisas divertidas nele. Eu criei umaNSDate
extensão para adicionar algumas funcionalidades típicas que são trabalhosas e feias para digitar repetidamente:usando esta extensão, agora você pode fazer algo como:
Que por 11:51 AM escreveria:
fonte
Resposta rápida 2:
fonte
Swift 4
RESULTADO
2018-May-01 10:41:31
fonte
Swift 3:
PS - não sei ao certo o que a pergunta significa exatamente ao obter a hora (e a hora) atuais como data e hora, mas espero que o exposto acima explique o suficiente para responder à pergunta.
fonte
Com o Swift 5,
Foundation
oferece várias maneiras de obter o valor da hora de umDate
objeto. De acordo com suas necessidades, você pode escolher um dos quatro seguintes trechos de código do Playground .# 1 Usando o
Calendar
dateComponents(_:from:)
métodoCalendar
tem um método chamadodateComponents(_:from:)
.dateComponents(_:from:)
tem a seguinte declaração:Uso:
# 2 Usando o
Calendar
component(_:from:)
métodoCalendar
tem um método chamadocomponent(_:from:)
.component(_:from:)
tem a seguinte declaração:Uso:
# 3 Usando
DateFormatter
dateFormat
propriedadeDateFormatter
tem uma propriedade chamadadateFormat
.dateFormat
tem a seguinte declaração:Uso:
# 4 Usando o
Dateformatter
setLocalizedDateFormatFromTemplate(_:)
métodoDateformatter
tem um método chamadosetLocalizedDateFormatFromTemplate(_:)
.setLocalizedDateFormatFromTemplate(_:)
tem a seguinte declaração:Uso:
fonte
se você só precisa da hora do dia
fonte
No Swift 3,
fonte
let calendar = Calendar.current; let unitFlags: Set<Calendar.Component> = Set<Calendar.Component ([.hour]); let components = calendar.dateComponents(unitFlags, from: self)
Usando o Formatador de Data - Swift 3.0
Atualizar data e hora a cada segundo
Nota: DateAndTime no código do timer é o nome da classe.
fonte
Sei que há muitas respostas, mas acho que as minhas podem ser mais convenientes para muitos
fonte
Você pode tentar isso
Agora chame esse método e receba a data com hora, minuto e segundo
fonte
Você pode usar rapidamente 4 ou 5 como abaixo
Ouput será como abaixo
fonte
Xcode 8.2.1 • Swift 3.0.2
fonte
Date().hour
Expandindo a solução epicamente concisa da noiiv , aqui está a implementação Swift 3/4 ainda mais concisa:
Swift 3/4
Além disso, expandindo a extensão de Leo Dabus, podemos ter:
E use-o assim:
fonte
Date
objeto. Btw Calendário método de componentes é mais apropriado para um único componenteDateComponents.year
acessor éInt?
component
método para esses assessoressomente para data em formato específico
fonte
Swift 5
e função de chamada printTimestamp ()
fonte
Você pode criar uma extensão em
Date
, assim poderá chamá-la facilmente em outros arquivos. Aqui está um exemplo de uma extensão de data que usa uma propriedade computada.Ele será impresso: "Hoje, 16:55"
fonte
Você pode usar o Swift4 ou o Swift 5 abaixo, como:
saída como:
fonte
Caso você precise formatar a resposta de uma maneira específica, você pode facilmente usar esse método, o padrão = "dd-MM-aaaa".
Agora é possível obter a data de hoje usando
fonte
SWIFT 4:
fonte
fonte
Aqui está a extensão SWIFT para obter o horário atual de localização do dispositivo (GMT).
Obter tempo agora: -
fonte
Funciona com o Swift 5 (Xcode 10 e Xcode 11) (da França UTC)
Se você deseja exibir apenas a data, defina
formatter.dateFormat
Para exibir apenas horas, mude
formatter.dateFormat
paraNão se esqueça de adicionar
getCurrentDateTime()
emviewDidLoad
.fonte
Você pode obter do Dateformatter
fonte