Konvertieren des ArcGIS-Datumswerts in Zeichenfolgen im Format MM / TT / JJJJ mit ArcPy?

8

Ich schreibe ein Arcpy-Tool-Skript in ArcGIS 10.0. In einer fGDB-Feature-Class habe ich ein Datumsfeld. Ich habe festgestellt, dass die Werte im Feld Datum als lange Ganzzahldaten gespeichert sind, aber in der Tabelle im Format MM / TT / JJJJ angezeigt werden. Ich möchte den ganzzahligen Datumswert als Zeichenfolge erfassen, die das Datum im Format MM / TT / JJJJ anzeigt. Wie gehe ich vor?

Es gibt viele Beispiele für die Konvertierung einer Datums- / Zeitzeichenfolge in ein Datumsobjekt / einen Datumswert, jedoch nicht umgekehrt. Ich hänge Features aus einer Feature-Class mit vielen Feldern, einschließlich eines Datumsfelds, an ein Standardschema fc (das ich nicht ändern kann) mit wenigen Feldern an. Um viele der technischen Attribute in der Eingabe zu speichern, muss ich alles in ein benutzergesteuertes Textfeld kopieren, das im Ziel definiert ist. Die Datumsdaten aus der Eingabe gehören zu den Daten, die ich speichern muss, daher muss das Datum in eine Zeichenfolge konvertiert werden.

Es gibt wahrscheinlich eine ziemlich einfache Lösung, die mir fehlt, aber im Moment bin ich ratlos. Ich freue mich über jede Hilfe, die mir in den Weg kommt.

Celticflute
quelle
Es ist Monate her, hast du dein Problem gelöst?
RK
1
@RK - Es tut mir sehr leid, dass ich die Interessierten an diesem hängen gelassen habe. Ich habe den Überblick verloren. Wie auch immer, ja, die Antwort von blah238 unten hat gut funktioniert. Das bestimmte Skript, an dem ich gearbeitet habe, wurde anschließend so geändert, dass die Datumskonvertierung nicht mehr erforderlich war. Seitdem habe ich diese Lösung jedoch mehrmals in anderen Skripten verwendet. Danke, RK, dass du gefragt hast, und danke blah238 für deine Hilfe.
Celticflute

Antworten:

19

GP-Cursor lesen Datumswerte als datetimeObjekte, sodass Sie sie datetime.strftime()nach Ihren Wünschen oder datetime.ctime()als Standardformat ( %a %b %d %H:%M:%S %Y) formatieren können .

Hier ist ein Beispiel mit mm/dd/yyyy:

import arcpy
from datetime import datetime
fc = r"C:\GISData\test.gdb\atlantic_hurricanes_2000"
rows = arcpy.SearchCursor(fc)
for row in rows:
    datetimeVal = row.getValue("Date_Time")
    formattedTime = datetime.strftime(datetimeVal, "%m/%d/%Y")
    print formattedTime

Die Bedeutung der verschiedenen Zeitformatierungscodes finden Sie unter strftime-Verhalten .

blah238
quelle