Contoh ini menunjukkan cara membuat stempel waktu tanggal dengan Tcl. Anda dapat menggunakan stempel waktu tanggal dalam alur desain berskrip untuk merekam persis saat skrip berjalan. Menulis stempel waktu tanggal ke file desain Anda memberikan penyimpanan pada chip saat desain dikompilasi.
Anda dapat menggunakan perintah Tcl untuk menghasilkan string waktu tanggal yang diformat khusus hanya dengan elemen tanggal dan waktu yang Anda inginkan. Gunakan Tcl command clock detik untuk mengembalikan format waktu dan clock saat ini untuk menghasilkan string waktu tanggal yang diformat kustom. Lihat halaman web Pemformatan Tanggal dan Waktu untuk informasi lebih lanjut tentang memformat string waktu tanggal. Ini mencakup contoh dan tabel kata kunci pemformatan.
Berikut adalah dua contoh opsi pemformatan yang berbeda untuk string waktu tanggal.
Contoh 1
Perintah berikut menghasilkan string waktu tanggal yang diformat dengan elemen berikut, dalam urutan ini:
- Tahun empat digit
- Bulan dua digit (01-12)
- Hari dua digit (01-31)
- Format 24 jam dua digit jam (00-23)
- Dua digit menit (00-59)
- Dua digit detik (00-59)
format clock [clock detik] -format {%Y %m %d %H %M %S}
Perintah tersebut menghasilkan string seperti ini:
2005 01 10 15 16 55
Contoh 2
Contoh kedua menghasilkan string waktu tanggal yang diformat dengan elemen-elemen berikut, dalam urutan ini:
- Nama bulan yang disingkat diikuti periode
- Dua digit hari dalam sebulan diikuti oleh koma
- Tahun empat digit
- Waktu dalam format HH:MM:SS
- Indikator AM/PM
format clock [clock detik] -format {%b. %d, %Y %I:%M:%S %p}
Perintah tersebut menghasilkan string seperti ini:
10 Jan 2005 03:31:20 WIB
Mengonversi String Waktu Tanggal
Anda biasanya harus mengonversi string waktu tanggal ASCII ke format lain (seperti heksadesimal atau biner) untuk menyimpannya di bank atau memori register. Berikut adalah dua contoh konversi format.
Desimal ke Heksadesimal
Jika Anda menggunakan elemen waktu tanggal yang menghasilkan hanya nilai numerik, Anda dapat memperlakukannya sebagai angka desimal untuk tujuan konversi. Perintah berikut menghasilkan cap tanggal nomor hari dalam setahun (001 - 366), diikuti jam dalam format 24 jam, kemudian menit.
set str [format clock [clock detik] -format {%j%H%M}] set out [format "%X" $str]
Perintah itu menghasilkan string seperti ini dalam variabel keluar:
17D40F
ASCII hingga Heksadesimal
Perintah berikut menghasilkan string waktu tanggal dan mengonversinya menjadi string heksadesimal yang tersimpan dalam variabel . Setiap pasang digit heksadesimal adalah kode heksadesimal untuk karakter ASCII.
set str [format clock [clock detik] -format {%b. %d, %Y %I:%M:%S %p}] pemindaian biner $str "H*" keluar
Perintah itu menghasilkan string seperti ini dalam variabel keluar:
4a616e2e2031302c20323030352030333a3363a303520504d