2016-05-09 22 views
14

C'è un modo per stampare una data intera con millisecondi?Rapida data intera con millisecondi

Per esempio, io sto facendo questo:

print("\(NSDate())") 

ma io sono solo ottenere questo:

2016-05-09 22:07:19 +0000 

Come posso ottenere i millisecondi anche nella data completa?

+2

È necessario usare 'NSDateFormatter' con il corretto' dateFormat'. La stampa dell'oggetto data effettivo ti dà la rappresentazione della stringa per la data in UTC, non necessariamente il fuso orario che ti interessa. – AdamPro13

+2

Puoi usare 'NSDate(). TimeIntervalSince1970' per ottenere millisecondi –

risposta

35

Aggiornato per Swift 3

let d = Date() 
let df = DateFormatter() 
df.dateFormat = "y-MM-dd H:m:ss.SSSS" 

df.string(from: d) // -> "2016-11-17 17:51:15.1720" 

Quando hai un Dated, è possibile ottenere la stringa formattata utilizzando un NSDateFormatter. È inoltre possibile utilizzare un formattatore per trasformare una data stringa in base al formato in un Date

vedere questa tabella per maggiori informazioni su cosa dateFormat può fare http://waracle.net/iphone-nsdateformatter-date-formatting-table/

+0

Questo è un formato molto fuorviante dal momento che si effettua i secondi frazionari assomigliano a un fuso orario. Un formato molto migliore sarebbe avere 'ss.SSS' alla fine invece di' ss + SSSS'. – rmaddy

+0

Hai anche il formato sbagliato per l'anno. Usa 'yyyy', non' Y'. – rmaddy

+0

Sono d'accordo sui secondi che usano il formato ss.SSSS ma sembrava che fosse quello che stavano chiedendo? Modificherò la mia risposta nel caso in cui qualcuno si imbatta in questo e copi solo le paste. Come da commento dell'anno, Y restituisce l'anno spec. ISO 8601. – Will

Problemi correlati