Dalam pembangunan perisian, masa pemprosesan adalah isu yang berulang. Terutamanya dalam sistem yang besar, masa adalah bahagian penting dalam merekod acara, penjadualan tugas dan menganalisis data. Oleh itu, menggunakan perpustakaan pemprosesan masa yang sesuai menjadi tugas yang sangat penting. Artikel ini akan memperkenalkan penggunaan pustaka pemprosesan masa time
dalam bahasa Go.
Dalam bahasa Go, kita boleh menggunakan jenis time.Time
untuk mewakili masa. Nilai jenis Time
mengandungi maklumat tahun, bulan, hari, jam, minit, saat, nanosaat dan zon waktu. Jenis ini terbina dalam jadi kami tidak perlu memasang sebarang perpustakaan tambahan untuk menggunakannya.
Cara untuk mendapatkan waktu tempatan semasa ialah menggunakan fungsi time.Now()
. Ia akan mengembalikan objek masa jenis time.Time
, yang mewakili masa semasa semasa program berjalan.
func main() { current_time := time.Now() fmt.Println(current_time) }
Hasil keluaran:
2021-05-17 16:34:22.7241986 +0800 CST m=+0.000731901
Ia adalah keperluan yang sangat biasa untuk memaparkan masa dalam format yang berbeza. Dalam bahasa Go, kita boleh menggunakan fungsi time.Format()
untuk memformat masa. Fungsi ini menerima rentetan format dan menukar objek masa ke rentetan yang sepadan mengikut format ini.
func main() { current_time := time.Now() formatted_time := current_time.Format("2006-01-02 15:04:05") fmt.Println(formatted_time) }
Hasil keluaran:
2021-05-17 16:34:22
Dalam rentetan format, beberapa ruang letak yang biasa digunakan adalah seperti berikut:
占位符 | 含义 |
---|---|
2006 | 固定为4位的年份,表示是一种标准 |
01 | 固定为2位的月份,不足两位左侧补0 |
02 | 固定为2位的日期,不足两位左侧补0 |
15 | 固定为2位的小时,24小时制,不足两位左侧补0 |
04 | 固定为2位的分钟,不足两位左侧补0 |
05 | 固定为2位的秒,不足两位左侧补0 |
Pemprosesan masa perpustakaan bahasa Go juga menyediakan beberapa kaedah operasi masa.
time.Add()
membolehkan kami menambah atau mengurangkan tempoh masa:
func main() { current_time := time.Now() after_one_hour := current_time.Add(time.Hour) fmt.Println(after_one_hour) }
Output:
2021-05-17 17:34:22.6523704 +0800 CST m=+3601.928903701
Dalam ini contoh , kami menggunakan time.Hour
untuk mewakili tempoh satu jam, dan kemudian menggunakan kaedah Add()
untuk menambah masa semasa pada tempoh ini. Nilai pulangan kaedah ini ialah objek masa, yang mewakili titik masa satu jam selepas masa semasa.
Kita juga boleh menggunakan kaedah time.Sub()
untuk mengira perbezaan masa antara dua masa:
func main() { start_time := time.Now() end_time := time.Now().Add(time.Hour) duration := end_time.Sub(start_time) fmt.Println(duration) }
Hasil keluaran:
1h0m0s
Hasil pengiraan di sini ialah time.Duration
Nilai jenis yang mewakili tempoh masa antara dua titik dalam masa. Kaedah
time.Date()
membolehkan kita mencipta objek masa berdasarkan tahun, bulan, hari, jam, minit, saat dan zon waktu yang ditentukan:
func main() { t := time.Date(2021, 5, 17, 15, 30, 0, 0, time.Local) fmt.Println(t) }
Hasil Output:
2021-05-17 15:30:00 +0800 CST
Time
jenis menyediakan beberapa kaedah untuk mendapatkan maklumat masa, seperti tahun, bulan, hari, jam, minit, saat, dsb. Berikut ialah beberapa kaedah yang biasa digunakan:
func main() { current_time := time.Now() fmt.Println(current_time.Year()) // 获取年份 fmt.Println(current_time.Month()) // 获取月份 fmt.Println(current_time.Day()) // 获取日期 fmt.Println(current_time.Hour()) // 获取小时数 fmt.Println(current_time.Minute()) // 获取分钟数 fmt.Println(current_time.Second()) // 获取秒数 fmt.Println(current_time.Weekday()) // 获取星期几,0表示星期日 }
Hasil keluaran:
2021 May 17 16 34 22 Monday
Atas ialah kandungan terperinci Penggunaan perpustakaan pemprosesan masa dalam bahasa Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!