Geben Sie bei Eingabe eines Unix-Zeitstempels als Eingabe eine Datums- / Uhrzeitzeichenfolge in einem Format wie dem folgenden an: "YYMMDD.HHmm"
Regeln
- Die Eingabe ist eine Zahl (Ganzzahl) einer millisekundengenauen UNIX-Epochenzeit (Millisekunden seit 1970, 1. Januar 00: 00: 00.000 UTC).
- Die Werte müssen mit Nullen aufgefüllt werden, wenn sie 1 Zeichen anstelle von 2 sind. (Beispiel: Für "DD" ist "1" nicht akzeptabel, "01" jedoch.)
- Die Ausgabe muss eine einzelne Zeichenfolge sein. Keine Arrays.
- Schaltsekundenhandling spielt keine Rolle.
- Kürzeste Siege.
Viel Glück!
Beispiel
Input: 1547233866744
Output: 190111.1911
Antworten:
Japt v1.4.5 ,
1916 BytesDank Oliver wurde 1 Byte gespeichert , was zu weiteren 2 gespeicherten Bytes führte.
Versuch es
Erläuterung
Hinweise / Tipps
G
wird verwendet, um das.
am erforderlichen Index einzufügen, da die Verwendung eines Literal6
dazu führen würde, dass es mit dem.
und kombiniert wird und dass dies als Dezimalzahl interpretiert wird, die am Anfang der Zeichenfolge eingefügt wird . Um das zu umgehen, müsste ich ein'
vor dem hinzufügen.
, um zu erzwingen, dass es als Zeichenfolge interpretiert wird .17
und ab v1.4.6 hat, wenn versucht wird, etwas am ersten Index nach dem Ende eines Strings einzufügen, was dazu führt, dass es am Ende des Strings eingefügt wird (A
ist der Japt Konstante für10
), während es vor v1.4.6 sofort zum Anfang des Strings zurückkehrt .quelle
JavaScript (ES6), 65 Byte
Probieren Sie es online aus!
Wie?
Wir initialisieren den Zeiger auf einen nicht numerischen Wert (erzwungen auf ) und addieren dann abwechselnd und , um die relevanten Zeichen aus der ISO-8601-Konvertierung des Eingabezeitstempels auszuwählen.ich 0 2 1
JavaScript (ES6), 66 Byte
Probieren Sie es online aus!
Wie?
Sobald der eingegebene Zeitstempel in das ISO-8601-Format konvertiert wurde, kann auf alle erforderlichen Zeichen mit einer einzelnen hexadezimalen Ziffer zugegriffen werden.
quelle
n=>'235689.11121415'.replace(/1?\w/g,x=>new Date(n).toJSON()[x])
Bash + Coreutils, 29 Bytes
Probieren Sie es online aus!
quelle
PHP ,
403231 Bytes-8 Bytes dank Luis Felipe
-1 Bytes dank Jo King
Probieren Sie es online aus!
Einfache naive Antwort. Die PHP-
date
Funktion verwendet eine Formatzeichenfolge und einen ganzzahligen Zeitstempel. Eingabe von cli-Argumenten, die standardmäßig eine Zeichenfolge sind,/1e3
dadate
zweitgenaue Zeitstempel erwartet werden. Dies zwingt den String auch zu einer Zahl.quelle
"2"/1
/1000
, dass ich es brauchte , und dachte nicht, dass ich es danach nicht mehr brauchen könnte: PMATL , 28 Bytes
Vielen Dank an @skiilaa für eine Korrektur im Ausgabeformat.
Probieren Sie es online aus!
Erläuterung
MATL definiert wie MATLAB Datums- / Zeitnummern als die (möglicherweise nicht ganzzahlige) Anzahl von Tagen seit der Zeit 00:00 des Referenz- "Datums" 0-Jan-0000.
Daher nehmen wir die Eingabe, dividieren sie durch 86400000 (Anzahl der Millisekunden an einem Tag), addieren 719529 (Anzahl der Tage von MATLs Referenz zu UNIX-Referenz) und konvertieren in das gewünschte Format 'YYmmDD.HHMM'.
quelle
PowerShell ,
5958 ByteProbieren Sie es online aus!
Ruft das
Date
von ab1/1/1970
(standardmäßig 00:00:00 Uhr), dannAdd
die entsprechende Anzahl vonSeconds
.-f
Übergibt das an den ormat-Operator, der die datetime korrekt formatiert.Wahrscheinlich kulturabhängig. Dies funktioniert auf TIO
en-us
.-1 Byte dank Shaggy.
quelle
GNU AWK,
3433 Zeichen(
strftime()
Ist eine GNU-Erweiterung und wird in anderen AWK-Implementierungen nicht ausgeführt.)Dank an:
Probelauf:
Probieren Sie es online aus!
quelle
Perl 6 ,
111 8987 BytesProbieren Sie es aus (111)
Probieren Sie es aus (89)
Probieren Sie es aus (87)
Erläuterung:
Der
o
Infix-Operator übernimmt zwei Funktionen und erstellt eine zusammengesetzte Funktion. Der ganz rechts wird zuerst aufgerufen, und der links wird mit seinem Ergebnis aufgerufen.Grundsätzlich verwenden wir 4 Block Lambdas, um ein einzelnes Lambda zu erzeugen.
Das unterscheidet sich nicht wesentlich davon, wie ein WhateverCode-Lambda
* + *
erstellt wird.Teilen Sie durch 1000 und erstellen Sie damit ein DateTime-Objekt.
Das Ergebnis wird verwendet von:
Das lässt uns mit einer Schnur wie
2019-01-11.19 11
Wir müssen die ersten beiden Ziffern entfernen
Wir müssen auch entfernen
-
undquelle
Python 2 , 64 Bytes
Probieren Sie es online aus!
Die Eingabe wird als in UTC betrachtet.
quelle
lambda
kommt,import
weil es für den TIO-Header besser funktioniert?NameError
vor dem Aufruf nicht auf s überprüft .R ,
5856 BytesProbieren Sie es online aus!
quelle
C (gcc) (32-Bit, Little Endian), 67 Bytes
Probieren Sie es online aus!
Auf einer ILP64-Plattform sollte die folgende 55-Byte- Version funktionieren:
quelle
s
Argument, für das Sie sich entscheiden?s
ist für die Ausgabezeichenfolge.long long
stattlong
oderint32_t
,int64_t
,time_t
? IAC, alle kürzer alslong long
.Perl 6 ,
5750 BytesProbieren Sie es online aus!
Übernimmt die Standardzeichenfolge einer Datetime im Format
yyyy-mm-ddThh:mm:ssZ
und ändert sie an das Ausgabeformat. Perl 6 benötigt eine Datumsformatierungsmethode.Erläuterung:
quelle
C # (Visual C # Interactive Compiler) ,
676160 ByteAus mir unbekannten Gründen funktioniert DateTime.UnixEpoch nicht.
Probieren Sie es online aus!
quelle
Javascript ES6,
7666 BytesProbieren Sie es online aus
-10 Bytes dank Shaggy!
quelle
C (Klirren) ,
117111 BytesVielen Dank an @chux und @ceilingcat für die Vorschläge.
Probieren Sie es online aus!
quelle
gmtime
ist kurz alslocaltime
Zweig, 25 Zeichen
Dies ist eine Vorlage. Rufen Sie es auf, indem Sie es einschließen, und übergeben Sie die Unix-Zeit als Parameter d.
Beispielnutzung:
Probieren Sie es auf TwigFiddle aus
quelle
JavaScript, 64 Bytes
Probieren Sie es online aus!
quelle
jq, 33 Zeichen
(30 Zeichen Code + 3 Zeichen Befehlszeilenoption)
Probelauf:
Probieren Sie es online aus!
quelle
1000
->1e3
ksh , 36 Bytes
Probieren Sie es online aus!
Vielen Dank an Jo King für 15 gespeicherte Bytes
quelle
MediaWiki, 46 Bytes
quelle
Java 8, 78 Bytes
Probieren Sie es online aus.
Erläuterung:
quelle