datetime - pegar - timezoneinfo c#




Como obter a hora atual como datetime (13)

Usando o Date Formatter -Swift 3.0

//Date
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .medium
let dateString = "Current date is: \(dateFormatter.string(from: Date() as Date))"
labelfordate.text = String(dateString)


//Time    
let timeFormatter = DateFormatter()
timeFormatter.timeStyle = .medium
let timeString = "Current time is: \(timeFormatter.string(from: Date() as Date))"
labelfortime.text = String(timeString)

Atualizar data e hora a cada segundo

override func viewDidLoad() {
super.viewDidLoad()

timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(DateAndTime.action), userInfo: nil, repeats: true)

       }

func action()
    {
    //Date
    let dateFormatter = DateFormatter()
    dateFormatter.dateStyle = .medium
    let dateString = "Current date is: \(dateFormatter.string(from: Date() as Date))"
    labelfordate.text = String(dateString)


    //Time
    let timeFormatter = DateFormatter()
    timeFormatter.timeStyle = .medium
    let timeString = "Current time is: \(timeFormatter.string(from: Date() as Date))"
    labelfortime.text = String(timeString)

    }

Nota: DateAndTime no código do temporizador é o nome da classe.

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, 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?


Aqui está a extensão SWIFT para obter o horário atual do seu dispositivo (GMT).

    func getGMTTimeDate() -> Date {
       var comp: DateComponents = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute], from: self)
       comp.calendar = Calendar.current
       comp.timeZone = TimeZone(abbreviation: "GMT")!
       return Calendar.current.date(from: comp)!
}

Obtenha agora o tempo: -

Date().getGMTTimeDate()

Com o Swift 3 e o Swift 4, o Foundation oferece várias maneiras para o valor da hora de um objeto Date . De acordo com as suas necessidades, você pode escolher um dos quatro trechos de código Playground abaixo .

# 1. Usando o dateComponents(_:from:) Calendar dateComponents(_:from:)

Calendar tem um método chamado dateComponents(_:from:) . dateComponents(_:from:) tem a seguinte declaração:

func dateComponents(_ components: Set<Calendar.Component>, from date: Date) -> DateComponents

Retorna todos os componentes de data de uma data, usando o fuso horário do calendário.

Uso:

import Foundation

let date = Date()
let dateComponents = Calendar.current.dateComponents([.hour], from: date)
let hour = dateComponents.hour
print(String(describing: hour)) // may print: Optional(13)

# 2. Usando o component(_:from:) Calendar component(_:from:) método component(_:from:)

Calendar tem um método chamado component(_:from:) . component(_:from:) tem a seguinte declaração:

Retorna o valor de um componente de uma data.

func component(_ component: Calendar.Component, from date: Date) -> Int

Uso:

import Foundation

let date = Date()
let hour = Calendar.current.component(.hour, from: date)
print(hour) // may print: 13

# 3. Usando a propriedade dateFormat DateFormatter

DateFormatter tem uma propriedade chamada dateFormat . dateFormat tem a seguinte declaração:

var dateFormat: String! { get set }

A string de formato de data usada pelo receptor.

Uso:

import Foundation

let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH"
let hour = dateFormatter.string(from: date)
print(hour) // may print: 13

# 4. Usando o Dateformatter setLocalizedDateFormatFromTemplate(_:)

Dateformatter tem um método chamado setLocalizedDateFormatFromTemplate(_:) . setLocalizedDateFormatFromTemplate(_:) tem a seguinte declaração:

func setLocalizedDateFormatFromTemplate(_ dateFormatTemplate: String)

Define o formato da data a partir de um modelo usando a localidade especificada para o receptor.

Uso:

import Foundation

let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.setLocalizedDateFormatFromTemplate("HH")
let hour = dateFormatter.string(from: date)
print(hour) // may print: 13

Eu sei que há muitas respostas, mas eu acho que a minha pode ser mais conveniente para muitos

extension String {
    init(epoch: Double) {
        let date = Date(timeIntervalSince1970: epoch)

        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "dd/MM/yyyy HH:mm:ssZZZ"

        self = dateFormatter.string(from: date)
    }
}

O Swift torna realmente fácil criar e usar extensões. Eu crio um arquivo sharedCode.swift e coloco enums, extensões e outras coisas divertidas nele. Eu criei uma extensão NSDate para adicionar algumas funcionalidades típicas que é trabalhoso e feio para digitar uma e outra vez:

extension NSDate
{
    func hour() -> Int
    {
        //Get Hour
        let calendar = NSCalendar.currentCalendar()
        let components = calendar.components(.Hour, fromDate: self)
        let hour = components.hour

        //Return Hour
        return hour
    }


    func minute() -> Int
    {
        //Get Minute
        let calendar = NSCalendar.currentCalendar()
        let components = calendar.components(.Minute, fromDate: self)
        let minute = components.minute

        //Return Minute
        return minute
    }

    func toShortTimeString() -> String
    {
        //Get Short Time String
        let formatter = NSDateFormatter()
        formatter.timeStyle = .ShortStyle
        let timeString = formatter.stringFromDate(self)

        //Return Short Time String
        return timeString
    }
}

Usando esta extensão você pode fazer algo como:

        //Get Current Date
        let currentDate = NSDate()

        //Test Extensions in Log
        NSLog("(Current Hour = \(currentDate.hour())) (Current Minute = \(currentDate.minute())) (Current Short Time String = \(currentDate.toShortTimeString()))")

Que para 11:51 seria escrever:

(Hora Atual = 11) (Minuto Atual = 51) (String de Tempo Curto Atual = 11:51 AM)


Swift 2 answer:

 let date = NSDate()
 let calendar = NSCalendar.currentCalendar()
 let components = calendar.components([.Hour, .Minute], fromDate: date)
 let hour = components.hour
 let minutes = components.minute

Você pode obter a partir de Dateformatter

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy"
let dateString = dateFormatter.string(from:Date())
print(dateString)

Você pode tentar isso

func getTime() -> (hour:Int, min:Int, sec:Int) {
        let currentDateTime = NSDate()
        let calendar = NSCalendar.currentCalendar()
        let components = calendar.components([.Hour,.Minute,.Second], fromDate: currentDateTime)
        let hour = components.hour
        let min = components.minute
        let sec = components.second
        return (hour,min,sec)
    }

Agora chame esse método e receba a data com hora, min e segundo

    let currentTime = self.getTime()
    print("Hour: \(currentTime.hour) Min: \(currentTime.min) Sec: \(currentTime.sec))")

por apenas data em formato específico

    let dateFormatter1 = NSDateFormatter()
    dateFormatter1.dateStyle = .MediumStyle
    dateFormatter1.timeStyle = .NoStyle
    dateFormatter1.dateFormat = "dd-MM-yyyy"
    let date = dateFormatter1.stringFromDate(NSDate())

se você só precisa da hora do dia

let calendar = NSCalendar.currentCalendar()
var hour = calendar.component(.Hour,fromDate: NSDate())

Atualização para o Swift 3:

let date = Date()
let calendar = Calendar.current
let hour = calendar.component(.hour, from: date)
let minutes = calendar.component(.minute, from: date)

Eu faço isso:

let date = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.CalendarUnitHour | .CalendarUnitMinute, fromDate: date)
let hour = components.hour
let minutes = components.minute

Veja a mesma pergunta no objetivo-c Como obtenho hora e minutos da NSDate?

Comparado com a resposta de Nate, você obterá números com este, não com seqüências de caracteres ... escolha sua escolha!


Swift 3:

static func currentTime() -> String {
    let date = Date()
    let calendar = Calendar.current
    let hour = calendar.component(.hour, from: date)
    let minutes = calendar.component(.minute, from: date)
    return "\(hour):\(minutes)"
  }

PS - não tenho certeza do que a pergunta significa exatamente ao obter o horário atual (e hora) como data e hora, mas esperamos que o texto acima explique o suficiente para responder à pergunta.


Xcode 8.2.1 • Swift 3.0.2

extension Date {
    var hour: Int { return Calendar.autoupdatingCurrent.component(.hour, from: self) }
}
let date = Date()      // "Mar 16, 2017, 3:43 PM"
let hour = date.hour   // 15




swift