Aktifkan pengumpulan timestamp presisi nanodetik di Simple Log Service (SLS) dengan mengonfigurasi Logtail untuk mengurai dan menyimpan data waktu berpresisi tinggi. Timestamp yang dikumpulkan disimpan dalam dua bidang: __time__ berpresisi detik dan __time_ns_part__ sebagai offset nanodetik, sehingga memungkinkan pengurutan dan analisis log secara kronologis yang ketat.
Prasyarat
Sebelum mengonfigurasi pengumpulan timestamp presisi nanodetik, pastikan lingkungan Anda memenuhi persyaratan berikut:
Sistem operasi: Hanya Linux. Fitur ini tidak didukung di Windows. Konfigurasi yang diterapkan pada server Windows tidak berlaku.
Versi Logtail: LoongCollector (Logtail) 1.8.0 atau lebih baru.
Sumber daya SLS: Sebuah project dan sebuah LogStore.
Kasus penggunaan
Timestamp presisi nanodetik sangat penting dalam skenario di mana presisi tingkat detik tidak mencukupi:
Distributed tracing: Korelasikan span lintas layanan dengan akurasi sub-milidetik untuk mengidentifikasi bottleneck latensi.
High-frequency trading: Pertahankan urutan event yang ketat untuk log transaksi di mana perbedaan mikrodetik menentukan kausalitas.
Performance profiling: Analisis data waktu detail halus untuk mendeteksi anomali performa yang tidak dapat dibedakan oleh timestamp tingkat detik.
Strict log ordering: Pertahankan urutan eksak dari event log ber-volume tinggi yang terjadi dalam detik yang sama.
Cara kerja
LoongCollector (Logtail) mengumpulkan timestamp presisi nanodetik dengan menyimpan offset nanodetik selain timestamp standar berpresisi detik. Desain ini menjaga kompatibilitas dengan sistem waktu berbasis detik yang sudah ada sekaligus menyediakan pengurutan berpresisi tinggi.
Alur kerja pengumpulan mengikuti langkah-langkah berikut:
Aktifkan dukungan nanodetik: Di parameter lanjutan konfigurasi koleksi Logtail, atur
{ "EnableTimestampNanosecond": true }.Urai log: Gunakan prosesor (delimiter, JSON, atau regular expression) untuk mengekstrak string timestamp berpresisi tinggi dari log mentah.
Konversi waktu: Prosesor penguraian waktu mengonversi string waktu menjadi format waktu standar.
Simpan waktu: SLS membagi waktu menjadi dua bidang:
__time__: Timestamp Unix standar (integer panjang), dalam satuan detik.__time_ns_part__: Offset nanodetik (integer panjang). Nilai valid: 0 hingga 999.999.999.
Kueri dan analisis: Urutkan berdasarkan kombinasi
__time__dan__time_ns_part__untuk melakukan analisis log secara kronologis yang ketat.
Prosedur
Bagian ini menjelaskan alur kerja end-to-end lengkap menggunakan log JSON yang berisi timestamp presisi nanodetik. Alur kerja mencakup koleksi log, penguraian, konfigurasi indeks, serta kueri dan analisis.
Langkah 1: Buat project dan LogStore
Jika Anda sudah memiliki project dan LogStore, lewati ke Langkah 2: Konfigurasi kelompok mesin dan instal LoongCollector.
Jika belum, buat sumber daya yang mengelola dan menyimpan log Anda:
Masuk ke konsol Simple Log Service.
Klik Create Project dan konfigurasikan parameter berikut:
Region: Pilih wilayah berdasarkan asal log Anda. Wilayah tidak dapat diubah setelah project dibuat.
Project Name: Masukkan nama yang unik secara global dalam Alibaba Cloud. Nama tidak dapat diubah setelah project dibuat.
Pertahankan pengaturan default untuk parameter lainnya dan klik Create. Untuk informasi lebih lanjut, lihat Manage projects.
Klik nama project untuk masuk ke project tersebut.
Di panel navigasi kiri, pilih
Log Storage dan klik +.Di halaman Create LogStore, konfigurasikan parameter berikut:
Logstore Name: Tetapkan nama yang unik dalam project. Nama tidak dapat diubah setelah LogStore dibuat.
Logstore Type: Pilih Standard atau Query berdasarkan perbandingan spesifikasi.
Billing Mode:
Pay-by-feature: Anda ditagih secara terpisah untuk setiap sumber daya, seperti penyimpanan, indeks, serta operasi baca dan tulis. Mode ini cocok untuk skenario skala kecil atau skenario di mana penggunaan fitur Anda belum pasti.
Pay-by-ingested-data: Anda hanya ditagih berdasarkan data mentah yang diingest. Mode ini mencakup periode penyimpanan gratis selama 30 hari dan fitur gratis seperti transformasi data dan pengiriman. Model biaya ini sederhana, sehingga cocok untuk skenario di mana periode penyimpanan mendekati 30 hari atau pipeline pemrosesan data kompleks.
Data Retention Period: Tetapkan jumlah hari untuk menyimpan log. Nilai valid: 1 hingga 3.650. Nilai 3.650 menunjukkan retensi permanen. Nilai default: 30.
Pertahankan pengaturan default untuk parameter lainnya dan klik OK. Untuk informasi lebih lanjut, lihat Manage LogStores.
Langkah 2: Konfigurasi kelompok mesin dan instal LoongCollector
Instal LoongCollector di server Anda dan tambahkan server tersebut ke kelompok mesin. Topik ini menggunakan contoh instance ECS yang telah terinstal LoongCollector, di mana instance ECS dan project SLS berada dalam akun dan wilayah Alibaba Cloud yang sama. Jika instance ECS dan project tidak berada dalam akun atau wilayah yang sama, atau jika Anda menggunakan server yang dikelola sendiri, lihat Install LoongCollector untuk menginstal collector secara manual.
| Klik project target. Di halaman LogStores
:
Klik
di depan nama LogStore target untuk memperluasnya.Klik
di samping Data Collection.Di kotak dialog yang muncul, pilih templat log teks. Topik ini menggunakan templat Single Line - Text Logs sebagai contoh. Klik Integrate Now. Semua templat log teks hanya berbeda pada prosesor penguraian. Sisa proses konfigurasi sama, dan Anda dapat mengubah semua pengaturan nanti.
Langkah konfigurasi:
Di halaman Machine Group Configurations, konfigurasikan parameter berikut:
Scenario: Servers
Installation Environment: ECS
Konfigurasi kelompok mesin: Pilih tindakan yang sesuai dengan status instalasi LoongCollector dan status kelompok mesin server target:
Jika LoongCollector sudah terinstal dan server sudah termasuk dalam kelompok mesin, pilih kelompok tersebut dari daftar Source Machine Group dan tambahkan ke daftar Applied Machine Group. Anda tidak perlu membuat kelompok lagi.
Jika LoongCollector belum terinstal, klik Create Machine Group: Langkah-langkah berikut memandu Anda melalui instalasi otomatis LoongCollector dan pembuatan kelompok mesin baru.
Sistem secara otomatis menampilkan daftar instance ECS yang berada di wilayah yang sama dengan project. Pilih satu atau beberapa instance dari mana Anda ingin mengumpulkan log.
Klik Install and Create Machine Group. Sistem secara otomatis menginstal LoongCollector pada instance ECS yang dipilih.
Konfigurasikan Name kelompok mesin dan klik OK. Jika instalasi gagal atau tetap dalam status menunggu, periksa apakah instance ECS berada di wilayah yang sama dengan project.
Untuk menambahkan server yang telah terinstal LoongCollector ke kelompok mesin yang sudah ada, lihat topik FAQ How do I add a server to an existing machine group?
Langkah 3: Buat konfigurasi koleksi
Konfigurasi menggunakan konsol, buka halaman Logtail Configurations untuk menentukan aturan koleksi dan pemrosesan log.
1. Aktifkan dukungan presisi nanodetik Tentukan sumber log dan aturan koleksi, lalu aktifkan dukungan presisi nanodetik.
Global Configurations:
Configuration Name: Tetapkan nama yang unik dalam project. Nama tidak dapat diubah setelah konfigurasi dibuat.
Other Global Configurations: Aktifkan sakelar Advanced Parameters dan masukkan konten JSON berikut untuk mengaktifkan dukungan presisi nanodetik:
{
"EnableTimestampNanosecond": true
}Input Configurations:
Type: Text Log Collection.
File Path: Jalur tempat log dikumpulkan.
Linux: Dimulai dengan garis miring (/). Contohnya,
/data/mylogs/**/*.logmenentukan semua file dengan ekstensi .log di direktori/data/mylogs.Windows: Dimulai dengan huruf drive. Contohnya:
C:\Program Files\Intel\**\*.Log.
Maximum Directory Monitoring Depth: Kedalaman direktori maksimum yang dapat dicocokkan oleh wildcard
**di File Path. Nilai default: 0, yang hanya memantau direktori saat ini.2. Konfigurasi prosesor Karena log sumber berformat JSON, tambahkan prosesor Data Parsing (JSON Mode) di bagian Processing Steps. Prosesor ini memisahkan string yang berisi timestamp nanodetik dari log mentah dan menyimpannya sebagai bidang tersendiri.
Tambahkan contoh log
Asumsikan file log berisi log dalam format berikut, di mana bidang
asctimeberisi timestamp dengan presisi nanodetik.
{
"asctime": "2023-10-25 23:51:10,199999999",
"filename": "generate_data.py",
"levelname": "INFO",
"lineno": 51,
"module": "generate_data",
"message": "{\"no\": 14, \"inner_loop\": 166, \"loop\": 27451, \"uuid\": \"9be98c29-22c7-40a1-b7ed-29ae6c8367af\"}",
"threadName": "MainThread"
}Tambahkan prosesor penguraian JSON
Klik Add Processor, pilih Native Processor > Data Parsing (JSON Mode), lalu klik Confirm.
Tambahkan prosesor penguraian waktu
Konversi string waktu yang diekstrak pada langkah sebelumnya (bidang
asctime) menjadi timestamp nanodetik standar, dan gunakan sebagai waktu event log.
Nama prosesor | Fitur inti | Kasus penggunaan |
Time Parsing | Penguraian waktu dasar | Skenario sederhana dengan format tetap. |
Time - Strptime | Fleksibel, dan mendukung berbagai format | Direkomendasikan. Fitur lengkap yang kompatibel dengan standar industri. |
Time - Go | Menggunakan format pustaka standar Go | Skenario di mana Anda terbiasa dengan Go atau format log sesuai dengan pustaka standar Go. |
Penguraian waktu
Klik Add Processor, pilih Native Processor > Time Parsing, dan konfigurasikan parameter berikut:
Original Field: Bidang asli yang menyimpan waktu sebelum log diurai. Dalam contoh ini, bidang tersebut adalah
asctime.Time Format: Tetapkan format waktu yang sesuai dengan isi bidang waktu di log Anda. Dalam contoh ini, formatnya adalah
%Y-%m-%d %H:%M:%S,%f, di mana%fadalah bagian pecahan detik dan mendukung presisi hingga nanodetik.
String format waktu harus identik dengan format waktu di log mentah, termasuk pemisah antara detik dan nanodetik, seperti , atau .. Jika tidak, log tidak dapat diurai dengan benar.
Time Zone: Pilih zona waktu bidang waktu di log Anda. Secara default, zona waktu server digunakan.
Time - strptime
Klik Add Processor, pilih Extended Processor > Time - Strptime, dan konfigurasikan parameter berikut:
Original Field: Bidang asli yang menyimpan waktu sebelum log diurai. Dalam contoh ini, bidang tersebut adalah
asctime.Original Time Format: Tetapkan format waktu yang sesuai dengan isi bidang waktu di log Anda. Dalam contoh ini, formatnya adalah
%Y-%m-%d %H:%M:%S,%f, di mana%fadalah bagian pecahan detik dan mendukung presisi hingga nanodetik.
String format waktu harus identik dengan format waktu di log mentah, termasuk pemisah antara detik dan nanodetik, seperti , atau .. Jika tidak, log tidak dapat diurai dengan benar.
Time - Go
Klik Add Processor, pilih Extended Processor > Time - Go, dan konfigurasikan parameter berikut:
Original Time Field: Bidang asli yang menyimpan waktu sebelum log diurai. Dalam contoh ini, bidang tersebut adalah
asctime.Original Time Format: Tetapkan format waktu yang sesuai dengan bidang waktu di log mentah. Tulis format berdasarkan spesifikasi format waktu Go. Templat format waktu adalah waktu kelahiran bahasa Go,
2006-01-02 15:04:05 -0700 MST. Format waktu untuk contoh ini adalah2006-01-02 15:04:05,999999999.
String format waktu harus identik dengan format waktu di log mentah, termasuk pemisah antara detik dan nanodetik, seperti , atau .. Jika tidak, log tidak dapat diurai dengan benar.
New Time Field: Bidang target yang menyimpan waktu setelah log diurai. Dalam contoh ini, bidang tersebut adalah
result_asctime.New Time Format: Format waktu setelah log diurai. Tulis format berdasarkan spesifikasi format waktu Go. Dalam contoh ini, formatnya adalah
2006-01-02 15:04:05,999999999Z07:00.
3. Konfigurasi indeks Setelah menyelesaikan konfigurasi Logtail, klik Next. Halaman Query and Analysis Configurations akan muncul:
Sistem mengaktifkan full-text indexing secara default, yang mendukung pencarian kata kunci dalam konten log mentah.
Untuk menjalankan kueri eksak berdasarkan bidang, tunggu hingga Preview Data dimuat di halaman, lalu klik Automatic Index Generation. SLS menghasilkan field index berdasarkan entri pertama dalam data pratinjau.
Setelah menyelesaikan konfigurasi, klik Next untuk menyelesaikan seluruh proses koleksi.
Konfigurasi menggunakan CRD (skenario Kubernetes) Di kluster ACK atau kluster Kubernetes yang dikelola sendiri, Anda dapat mengonfigurasi koleksi timestamp presisi nanodetik menggunakan CRD AliyunLog. Simpan konten YAML berikut ke file dan jalankan kubectl apply -f <filename> untuk menerapkan konfigurasi. Contoh berikut menunjukkan konfigurasi untuk ketiga prosesor tersebut.
Penguraian waktu
apiVersion: telemetry.alibabacloud.com/v1alpha1
kind: ClusterAliyunPipelineConfig
metadata:
name: ${your-config-name}
spec:
config:
aggregators: []
global:
EnableTimestampNanosecond: true
inputs:
- Type: input_file
FilePaths:
- /test/sls/json_nano.log
MaxDirSearchDepth: 0
FileEncoding: utf8
EnableContainerDiscovery: true
processors:
- Type: processor_parse_json_native
SourceKey: content
- Type: processor_parse_timestamp_native
SourceKey: asctime
SourceFormat: '%Y-%m-%d %H:%M:%S,%f'
flushers:
- Type: flusher_sls
Logstore: ${your-logstore-name}
sample: |-
{
"asctime": "2025-11-03 15:39:14,229939478",
"filename": "log_generator.sh",
"levelname": "INFO",
"lineno": 204,
"module": "log_generator",
"message": "{\"no\": 45, \"inner_loop\": 15, \"loop\": 1697, \"uuid\": \"80366fca-a57d-b65a-be07-2ac1173505d9\"}",
"threadName": "MainThread"
}
project:
name: ${your-project-name}
logstores:
- name: ${your-logstore-name}Time - strptime
apiVersion: telemetry.alibabacloud.com/v1alpha1
kind: ClusterAliyunPipelineConfig
metadata:
name: ${your-config-name}
spec:
config:
aggregators: []
global:
EnableTimestampNanosecond: true
inputs:
- Type: input_file
FilePaths:
- /test/sls/json_nano.log
MaxDirSearchDepth: 0
FileEncoding: utf8
EnableContainerDiscovery: true
processors:
- Type: processor_parse_json_native
SourceKey: content
- Type: processor_strptime
SourceKey: asctime
Format: '%Y-%m-%d %H:%M:%S,%f'
KeepSource: true
AlarmIfFail: true
AdjustUTCOffset: false
flushers:
- Type: flusher_sls
Logstore: ${your-logstore-name}
sample: |-
{
"asctime": "2025-11-03 15:39:14,229939478",
"filename": "log_generator.sh",
"levelname": "INFO",
"lineno": 204,
"module": "log_generator",
"message": "{\"no\": 45, \"inner_loop\": 15, \"loop\": 1697, \"uuid\": \"80366fca-a57d-b65a-be07-2ac1173505d9\"}",
"threadName": "MainThread"
}
project:
name: ${your-project-name}
logstores:
- name: ${your-logstore-name}Time - Go
apiVersion: telemetry.alibabacloud.com/v1alpha1
kind: ClusterAliyunPipelineConfig
metadata:
name: ${your-config-name}
spec:
config:
aggregators: []
global:
EnableTimestampNanosecond: true
inputs:
- Type: input_file
FilePaths:
- /test/sls/json_nano.log
MaxDirSearchDepth: 0
FileEncoding: utf8
EnableContainerDiscovery: true
processors:
- Type: processor_parse_json_native
SourceKey: content
- Type: processor_gotime
SourceKey: asctime
SourceFormat: '2006-01-02 15:04:05,999999999'
DestKey: result_asctime
DestFormat: '2006-01-02 15:04:05,999999999Z07:00'
SetTime: true
KeepSource: true
NoKeyError: true
AlarmIfFail: true
flushers:
- Type: flusher_sls
Logstore: ${your-logstore-name}
sample: |-
{
"asctime": "2025-11-03 15:39:14,229939478",
"filename": "log_generator.sh",
"levelname": "INFO",
"lineno": 204,
"module": "log_generator",
"message": "{\"no\": 45, \"inner_loop\": 15, \"loop\": 1697, \"uuid\": \"80366fca-a57d-b65a-be07-2ac1173505d9\"}",
"threadName": "MainThread"
}
project:
name: ${your-project-name}
logstores:
- name: ${your-logstore-name}Setelah menerapkan konfigurasi CRD, verifikasi bahwa konfigurasi koleksi berlaku dengan memeriksa LogStore untuk log masuk yang memiliki timestamp presisi nanodetik.
Langkah 4: Verifikasi hasil
Setelah menyelesaikan konfigurasi, tunggu beberapa saat hingga data log baru dikumpulkan ke LogStore.
Di halaman kueri dan analisis SLS, lihat log yang dikumpulkan. Konsol secara otomatis mengoptimalkan tampilan berdasarkan informasi waktu berpresisi tinggi dan menampilkan waktu dalam format milidetik, mikrodetik, atau nanodetik.
Dalam hasil kueri log, timestamp muncul dalam format seperti 2025-11-03 17:34:40.747598929.
Untuk memverifikasi bahwa presisi nanodetik berfungsi dengan benar, jalankan kueri untuk memeriksa bidang __time_ns_part__:
* | SELECT __time__, __time_ns_part__, * FROM log WHERE __time_ns_part__ > 0 ORDER BY __time__, __time_ns_part__ LIMIT 10Jika kueri mengembalikan hasil dengan nilai __time_ns_part__ dalam rentang 0 hingga 999.999.999, presisi nanodetik telah diaktifkan dan berfungsi dengan benar. Jika bidang __time_ns_part__ kosong atau hanya berisi nol, tinjau kembali konfigurasi koleksi Anda untuk memverifikasi bahwa:
Sakelar Advanced Parameters diaktifkan dan berisi
{ "EnableTimestampNanosecond": true }.Prosesor penguraian waktu dikonfigurasi dengan format waktu yang sesuai dengan timestamp log mentah Anda.
Versi Logtail di server Anda adalah 1.8.0 atau lebih baru.
Pertanyaan umum
Mengapa timestamp nanodetik di log yang dikumpulkan tidak diurai dengan benar?
Setelah mengonfigurasi koleksi, waktu berpresisi tinggi tidak diekstrak seperti yang diharapkan.
Waktu indeks di penampil log adalah 10-26 00:30:39, tetapi asctime dari catatan log adalah 2023-10-26 00:30:10,199999999. Kedua nilai tidak cocok, yang menunjukkan bahwa waktu berpresisi tinggi tidak diekstrak dengan benar. Detail catatan log adalah sebagai berikut:
__file_offset__ xxx
__tag__ xxx
asctime: 2023-10-26 00:30:10,199999999
filename: xxx
levelname: INFO
lineno: 51
message: {"no": 14, "inner_loop": 166, "loop": 27451, "uuid": "9be98c29-22c7-40a1-b7ed-29ae6c8367af"}
module: generate_data
threadName: MainThreadPenyebab
Mode prosesor mendukung %f, tetapi format waktu harus identik dengan isi waktu sumber.
Solusi
Masuk ke server LoongCollector (Logtail) dan periksa lognya. Anda menemukan banyak log exception STRPTIME_PARSE_ALARM.
tail -f /usr/local/ilogtail/logtail_plugin.LOG 2023-10-26 00:30:39 [WRN] [strptime.go:164] [processLog] [##1.0##xxxx,xxx] AlarmType:STRPTIME_PARSE_ALARM strptime(2023-10-26 00:30:10,199999999, %Y-%m-%d %H:%M:%S %f) failed: 0001-01-01 00:00:00 +0000 UTC, <nil>Ubah format penguraian log prosesor.
Di log mentah, waktu adalah
2023-10-26 00:30:10,199999999, dan pemisah antara detik dan waktu berpresisi tinggi (milidetik dalam kasus ini) adalah koma (,). Di format penguraian%Y-%m-%d %H:%M:%S %f, pemisah antara detik dan waktu berpresisi tinggi adalah spasi. Untuk memperbaiki masalah ini, ubah format konversi waktu di konfigurasi koleksi menjadi%Y-%m-%d %H:%M:%S,%f.
Penagihan dan keterbatasan
Dampak biaya: Bidang
__time_ns_part__disimpan sebagai bagian dari konten log, yang meningkatkan penggunaan penyimpanan log mentah. Kenaikan biaya sebanding dengan volume log Anda. Evaluasi biaya penyimpanan berdasarkan laju ingest log aktual dan periode retensi Anda.Keterbatasan lingkungan: Fitur ini hanya didukung oleh Logtail 1.8.0 atau lebih baru di Linux. Konfigurasi tidak berlaku di Windows.
Referensi
Lampiran 1: Format waktu log umum
Di server Linux, Logtail mendukung semua format waktu yang disediakan oleh fungsi strftime. Setiap string waktu log yang dapat diformat oleh fungsi strftime dapat diurai dan digunakan oleh Logtail.
Format waktu | Deskripsi | Contoh |
%a | Nama hari dalam minggu singkat. | Fri |
%A | Nama hari dalam minggu lengkap. | Friday |
%b | Nama bulan singkat. | Jan |
%B | Nama bulan lengkap. | January |
%d | Hari dalam bulan, dalam desimal. Nilai valid: 01 hingga 31. | 07, 31 |
%f | Bagian pecahan detik (milidetik, mikrodetik, atau nanodetik) | 123456789 |
%h | Nama bulan singkat. Setara dengan %b. | Jan |
%H | Jam, dalam format 24 jam. | 22 |
%I | Jam, dalam format 12 jam. | 11 |
%m | Bulan, dalam desimal. Nilai valid: 01 hingga 12. | 08 |
%M | Menit, dalam desimal. Nilai valid: 00 hingga 59. | 59 |
%n | Baris baru. | Baris baru |
%p | AM atau PM. | AM, PM |
%r | Waktu dalam format 12 jam. Setara dengan %I:%M:%S %p. | 11:59:59 AM |
%R | Jam dan menit. Setara dengan %H:%M. | 23:59 |
%S | Detik, dalam desimal. Nilai valid: 00 hingga 59. | 59 |
%t | Karakter tab. | N/A |
%y | Tahun tanpa abad, dalam desimal. Nilai valid: 00 hingga 99. | 04, 98 |
%Y | Tahun, dalam desimal. | 2004, 1998 |
%C | Abad, dalam desimal. Nilai valid: 00 hingga 99. | 16 |
%e | Hari dalam bulan, dalam desimal. Nilai valid: 1 hingga 31. Diperlukan spasi awal untuk nilai satu digit. | 7, 31 |
%j | Hari dalam tahun, dalam desimal. Nilai valid: 001 hingga 366. | 365 |
%u | Hari dalam minggu, dalam desimal, di mana 1 menunjukkan Senin. Nilai valid: 1 hingga 7. | 2 |
%U | Minggu dalam tahun, di mana Minggu adalah hari pertama minggu. Nilai valid: 00 hingga 53. | 23 |
%V | Minggu dalam tahun, di mana Senin adalah hari pertama minggu. Nilai valid: 01 hingga 53. Jika minggu pertama Januari memiliki empat hari atau lebih, maka itu adalah minggu 1. Jika tidak, minggu berikutnya adalah minggu 1. | 24 |
%w | Hari dalam minggu, dalam desimal, di mana 0 menunjukkan Minggu. Nilai valid: 0 hingga 6. | 5 |
%W | Minggu dalam tahun, di mana Senin adalah hari pertama minggu. Nilai valid: 00 hingga 53. | 23 |
%c | Tanggal dan waktu standar. | Tue Nov 20 14:12:58 2020 |
%x | Tanggal standar, tanpa waktu. | Tue Nov 20 2020 |
%X | Waktu standar, tanpa tanggal. | 11:59:59 |
%s | Timestamp Unix. | 1476187251 |
Contoh format waktu Tabel berikut mencantumkan standar waktu umum, contoh, dan ekspresi waktu yang sesuai.
Contoh | Ekspresi waktu | Standar waktu |
2017-12-11 15:05:07 | %Y-%m-%d %H:%M:%S | Custom |
[2017-12-11 15:05:07.012] | [%Y-%m-%d %H:%M:%S.%f] | Custom |
2017-12-11 15:05:07.123 | %Y-%m-%d %H:%M:%S.%f | Custom |
02 Jan 06 15:04 MST | %d %b %y %H:%M %Z | RFC822 |
02 Jan 06 15:04 -0700 | %d %b %y %H:%M %z | RFC822Z |
Monday, 02-Jan-06 15:04:05 MST | %A, %d-%b-%y %H:%M:%S %Z | RFC850 |
Mon, 02 Jan 2006 15:04:05 MST | %a, %d %b %Y %H:%M:%S %Z | RFC1123 |
2006-01-02T15:04:05Z07:00 | %Y-%m-%dT%H:%M:%S%z | RFC3339 |
2006-01-02T15:04:05.999999999Z07:00 | %Y-%m-%dT%H:%M:%S.%f%z | RFC3339Nano |
1637843406 | %s | Custom |
1637843406123 | %s | Custom (Simple Log Service (SLS) memproses data dengan presisi tingkat detik) |
Lampiran 2: Format waktu Go
Blok kode berikut mencantumkan format waktu resmi Go:
const (
Layout = "01/02 03:04:05PM '06 -0700" // Waktu referensi, dalam urutan numerik.
ANSIC = "Mon Jan _2 15:04:05 2006"
UnixDate = "Mon Jan _2 15:04:05 MST 2006"
RubyDate = "Mon Jan 02 15:04:05 -0700 2006"
RFC822 = "02 Jan 06 15:04 MST"
RFC822Z = "02 Jan 06 15:04 -0700" // RFC822 dengan zona numerik
RFC850 = "Monday, 02-Jan-06 15:04:05 MST"
RFC1123 = "Mon, 02 Jan 2006 15:04:05 MST"
RFC1123Z = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 dengan zona numerik
RFC3339 = "2006-01-02T15:04:05Z07:00"
RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"
Kitchen = "3:04PM"// Stempel waktu praktis.
Stamp = "Jan _2 15:04:05"
StampMilli = "Jan _2 15:04:05.000"
StampMicro = "Jan _2 15:04:05.000000"
StampNano = "Jan _2 15:04:05.000000000"
)