Saya mendesain AppleScript yang berisi tanggal hard-coded yang menjadi acuan skrip beberapa kali selama durasi eksekusi. Contohnya adalah sebagai berikut:
property someDate : date "Monday, 1 January 2018 at 01:00:00 PM"
Seperti yang dapat dilihat, format cap waktu sesuai untuk wilayah dan negara saya. Contoh lain adalah: Saturday, April 15, 2006 4:29:04 PM
atau 12/25/04
- yang merupakan format untuk wilayah lain seperti AS - mm/dd/yy
.
Pertanyaan-pertanyaan berikut muncul
- Jika AppleScript saya akan dijalankan di wilayah / negara lain (yang dengan format timestamp yang berbeda mis.
mm/dd/yy
Alih-alih sayadd/mm/yy
), bagaimana AppleScript berperilaku dengan deklarasi di atas? - Bagaimana saya harus memastikan bahwa AppleScript akan dengan benar mengubah timestamp dari format saya ke format masing-masing yang digunakan oleh perangkat pengguna akhir?
Konversi yang tepat menjadi kritis jika format tanggal berubah menjadi yang disebutkan sebelumnya dd/mm/yy
dan kemudian digunakan dalam mm/dd/yy
lingkungan (wilayah atau negara). Dalam hal ini, urutannya mungkin tidak jelas.
Contoh Kasus
property someDate : date "02/01/18"
seperti yang dd/mm/yy
akan dikodekan dengan maksud mewakili 02 Januari 2018 , tetapi ketika digunakan di wilayah yang berbeda (yang menggunakan mm/dd/yy
); secara alami, ini akan menjadi 01 Februari 2018 . Lihat masalahnya?
Karena penelitian saya mengenai hal ini mengarah pada hal yang sangat cepat (dan harus spesifik untuk AppleScript), saya berharap seseorang yang telah menerapkan kode yang sama dapat membantu saya dalam mengklarifikasi dua poin di atas. Terima kasih.
sumber
property someDate : date "Monday, 1 January 2018 at 01:00:00 PM"
di Script Editor `at` dihapus, tapi kompilasi. Jugacurrent date
mengembalikan format yang sama tetapi tanpaat
. Yang mengatakan, mengaturnya kembali ke pengaturan normal saya tidak mengkompilasi dan mengembalikanSyntax Error Invalid date and time date Monday, 1 January 2018 at 01:00:00 PM.
. Saya yang Anda akan menjawab pertanyaan yang sebelumnya saya tanyakan, yaitu: Mengapa Anda menetapkan aproperty
ke fixdate
, apa tujuannya dalam skrip ?set someDate to date "..."
akan bekerja juga (sehingga tidak membatasi diri saya pada deklarasi properti). Saya harap itu menjawab bagian terakhir. Cara lain bisa jadiset someDate to the current date
set the month of someDate to 1
set the day of someDate to 2
set the year of someDate to 2018
. Berharap tidak hanya menulis cap waktu singkat tetapi juga mempelajari cara yang tepat untuk mengimplementasikan solusi global.current date
dalam jaman ke file plist dan menggunakan nilai itu untuk menghitung. Saya kira itu bisa disimpan di properti saat dijalankan pertama kali. Apa pun cara Anda dapat menghitungnya.property
tetapi melakukannya dalam waktu yang sangat singkat dan bukan tanggal yang dapat dibaca manusia seperti yang Anda coba lakukan.Jawaban:
Ini berfungsi untuk saya menggunakan Sierra versi terbaru
Dalam skrip ini, saya menetapkan nilai tanggal yang telah ditentukan sebagai variabel. Dengan wilayah saya diatur ke Amerika Serikat, dalam preferensi sistem, saya menjalankan skrip dan mencatat hasilnya. Tiga baris pertama hasil dalam gambar berikut, adalah nilai yang dikembalikan dengan sistem saya yang ditetapkan ke wilayah Amerika Serikat. Selanjutnya saya kembali ke preferensi sistem dan beralih wilayah saya ke Hongaria dan menjalankan skrip lagi. Tiga baris terakhir hasil dalam gambar, mencerminkan nilai tanggal dan waktu seolah-olah saya menggunakan komputer di Eropa (Hongaria)
sumber