Mengonversi nilai tanggal ArcGIS ke pembacaan string dalam format mm / hh / tttt menggunakan ArcPy?


8

Saya menulis skrip alat arcpy di ArcGIS 10.0. Di kelas fitur fGDB, saya memiliki bidang tipe tanggal. Saya mengumpulkan bahwa nilai-nilai di bidang Tanggal disimpan sebagai tanggal integer panjang, tetapi mereka menampilkan dalam format mm / hh / tttt di tabel. Yang ingin saya lakukan adalah menangkap nilai tanggal integer sebagai string yang menunjukkan tanggal dalam format mm / hh / tttt. Bagaimana saya melakukannya?

Ada banyak contoh bagaimana mengkonversi string tanggal / waktu ke objek / nilai tanggal tetapi tidak sebaliknya. Saya menambahkan fitur dari kelas fitur dengan banyak bidang, termasuk bidang tanggal, ke skema-standar fc (yang tidak dapat saya ubah) yang memiliki beberapa bidang. Untuk menyimpan banyak atribut teknis dalam input, saya harus membuang semuanya ke dalam bidang teks catch-all, yang dikontrol pengguna yang didefinisikan dalam target. Data tanggal dari input adalah salah satu bagian dari data yang perlu saya simpan, maka kebutuhan untuk mengubah tanggal menjadi string.

Mungkin ada solusi yang cukup mudah yang saya lewatkan, tetapi saat ini saya bingung. Saya menghargai segala bantuan yang datang pada saya.


Sudah berbulan-bulan, sudahkah Anda menyelesaikan masalah Anda?
RK

1
@RK - Saya sangat menyesal telah meninggalkan orang-orang yang tertarik pada yang satu ini. Saya kehilangan jejak. Lagi pula, ya, jawaban blah238 di bawah ini bekerja dengan baik. Skrip tertentu yang saya kerjakan kemudian diubah dengan cara yang menghilangkan kebutuhan untuk konversi tanggal, tetapi saya telah menggunakan solusi ini beberapa kali sejak di skrip lain. Terima kasih, RK, untuk bertanya, dan terima kasih blah238 atas bantuannya.
celticflute

Jawaban:


19

Kursor GP membaca nilai tanggal sebagai datetimeobjek, sehingga Anda dapat menggunakan datetime.strftime()untuk memformatnya sesuka Anda, atau datetime.ctime()memformatnya sebagai format default ( %a %b %d %H:%M:%S %Y).

Berikut ini contoh menggunakan 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

Untuk arti dari berbagai kode pemformatan waktu, lihat perilaku strftime .

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.