Golang ialah bahasa pengaturcaraan yang cekap dan padat yang digunakan secara meluas dalam pelbagai bidang. Dalam pembangunan, kita selalunya perlu menukar masa, seperti menukar rentetan kepada masa, menukar masa kepada rentetan, dsb., dan format masa yang berbeza juga akan menyebabkan masalah tertentu. Oleh itu, artikel ini akan memperkenalkan operasi penukaran masa di Golang dan menerangkan penggunaan khususnya melalui contoh.
1. Tukar rentetan kepada masa
Di Golang, kita boleh menggunakan fungsi Parse dalam pakej masa untuk menukar rentetan kepada masa. Takrif khusus bagi fungsi Parse adalah seperti berikut:
func Parse(susun atur, rentetan nilai) (Masa, ralat)
di mana reka letak mewakili format masa rentetan yang hendak ditukar, dan nilai mewakili aksara yang akan ditukar. Kedua-dua parameter ini boleh menggunakan pemalar yang dipratentukan dalam pakej masa Pemalar khusus dan maknanya adalah seperti berikut:
时间常量 | 意义 |
---|---|
ANSIC | "Mon Jan _2 15:04:05 2006" |
UnixDate | "Mon Jan _2 15:04:05 MST 2006" |
RFC3339 | "2006-01-02T15:04:05Z07:00" |
Sebagai contoh, tukar rentetan "2022/04/12 15:20:00" kepada. masa Kod sampel adalah seperti berikut:
timeStr := "2022/04/12 15:20:00" layout := "2006/01/02 15:04:05" t, err := time.Parse(layout, timeStr) if err != nil { fmt.Println("转化失败:", err) } else { fmt.Println("转化成功:", t) }
Antaranya, timeStr ialah rentetan yang hendak ditukar, susun atur ialah format masa rentetan ("2006/01/02 15:04:05" bermaksud tahun, bulan, hari, jam, minit dan saat), t ialah objek masa yang diperoleh selepas penukaran, dan ralat ialah mesej ralat semasa proses penukaran. Menjalankan kod di atas, hasil output adalah seperti berikut:
转化成功: 2022-04-12 15:20:00 +0000 UTC
2. Tukar masa kepada rentetan
Begitu juga, di Golang, kita boleh menggunakan fungsi Format untuk menukar masa kepada rentetan. Takrif khusus bagi fungsi ini adalah seperti berikut:
func (t Time) Format(rentetan reka letak)
Di mana, t ialah objek masa yang hendak ditukar dan reka letak mewakili masa yang diformatkan rentetan. Penggunaannya juga serupa dengan fungsi Parse yang diperkenalkan di atas.
Sebagai contoh, kod sampel untuk menukar masa kepada rentetan dalam format "2022/04/12 15:20:00" adalah seperti berikut:
t := time.Now() layout := "2006/01/02 15:04:05" timeStr := t.Format(layout) fmt.Println("转化后时间字符串:", timeStr)
di mana t ialah arus masa dan reka letak ialah penukaran Format masa berikutnya ("2006/01/02 15:04:05" mewakili tahun, bulan, hari, jam, minit dan saat), dan timeStr ialah rentetan masa yang ditukar. Jalankan kod di atas dan hasil output adalah seperti berikut:
转化后时间字符串: 2022/04/12 15:20:00
3. Penukaran zon masa
Di Golang, perwakilan zon masa boleh diperoleh menggunakan fungsi Lokasi dalam pakej masa . Takrifannya adalah seperti berikut:
func LoadLocation(rentetan nama) (*Lokasi, ralat)
Di mana, nama mewakili nama zon waktu (seperti "Asia/Shanghai").
Sebagai contoh, apabila menukar waktu tempatan kepada waktu UTC, anda boleh menggunakan fungsi UTC dalam pakej masa Kod sampel adalah seperti berikut:
t := time.Now() utc := t.UTC() fmt.Println("本地时间:", t) fmt.Println("UTC时间:", utc)
di mana t ialah waktu tempatan dan utc. ialah waktu UTC yang ditukar. Jalankan kod di atas dan hasil output adalah seperti berikut:
本地时间: 2022-10-07 15:24:56.200122 +0800 CST m=+0.000498761 UTC时间: 2022-10-07 07:24:56.200122 +0000 UTC
4. Penambahan dan penolakan masa
Di Golang, penambahan dan penolakan masa boleh dilakukan menggunakan fungsi Tambah dan Subfungsi. Definisi khususnya adalah seperti berikut:
func (t Time) Add(d Duration) Time
func (t Time) Sub(u Time) Duration
Antaranya, fungsi Add menambah masa t Objek Tempoh sebelumnya d mengembalikan objek masa baharu; fungsi Sub menolak objek masa lain u daripada masa t dan mengembalikan objek Tempoh.
Sebagai contoh, kod sampel untuk menambah 10 minit pada masa sedia ada adalah seperti berikut:
t := time.Now() d := 10 * time.Minute newTime := t.Add(d) fmt.Println("原时间:", t) fmt.Println("加10分钟后的时间:", newTime)
Antaranya, t ialah masa sedia ada, d ialah selang masa yang akan ditambah (10 minit), newTime ialah masa baharu yang diperoleh selepas menambah. Jalankan kod di atas dan hasil output adalah seperti berikut:
原时间: 2022-10-07 15:35:26.924559 +0800 CST m=+0.000213898 加10分钟后的时间: 2022-10-07 15:45:26.924559 +0800 CST
5. Bagaimana untuk mengoptimumkan kecekapan penukaran masa
Dalam pembangunan sebenar, kami mungkin mempunyai sejumlah besar keperluan penukaran masa, dan menggunakan Masa Golang sendiri Menukar pakej akan mengurangkan kecekapan program. Pada masa ini, kami boleh menggunakan perpustakaan pihak ketiga untuk pengoptimuman.
Pada masa ini, perpustakaan penukaran masa yang lebih popular termasuk:
Pustaka pihak ketiga ini boleh meningkatkan kecekapan penukaran masa dengan sangat baik, dan juga menyelesaikan masalah yang disebabkan oleh reka letak masa yang berbeza pada sistem yang berbeza.
Ringkasan
Artikel ini memperkenalkan operasi penukaran masa di Golang, termasuk menukar rentetan kepada masa, masa kepada rentetan, penukaran zon waktu, penambahan dan penolakan masa, dsb. Pada masa yang sama, beberapa perpustakaan penukaran masa biasa juga disediakan untuk mengoptimumkan kecekapan penukaran masa Saya harap artikel ini dapat memberikan sedikit bantuan kepada pembangun Golang dalam penukaran masa.
Atas ialah kandungan terperinci penukaran masa golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!