Golang ialah bahasa pengaturcaraan sumber terbuka. Kemunculannya memudahkan pembangun menulis aplikasi yang cekap dan boleh dipercayai. Dalam sesetengah senario aplikasi, kami mungkin perlu menggunakan tetapan masa sistem, seperti fungsi berdasarkan pengiraan cap masa, penukaran zon masa, dsb. Oleh itu, artikel ini akan memperkenalkan cara menetapkan masa sistem di Golang untuk membantu pembaca menyelesaikan masalah yang sama.
1. Bagaimana untuk mendapatkan masa sistem
Sebelum menetapkan masa sistem, kita perlu mendapatkan masa sistem terlebih dahulu. Golang menyediakan pakej masa, yang boleh mendapatkan masa sistem semasa dengan mudah. Kodnya adalah seperti berikut:
import "time" func main() { now := time.Now() fmt.Println(now) }
Jalankan kod di atas untuk mengeluarkan maklumat masa semasa:
2021-06-17 11:52:36.42652 +0800 CST m=+0.000032531
Antaranya, "2021-06-17 11:52:36.42652" mewakili masa semasa , "+0800 ” mewakili ofset zon waktu semasa dan “CST” mewakili Waktu Standard China.
2. Menetapkan masa sistem
Kadangkala, kita perlu menetapkan masa sistem secara manual, seperti apabila penyegerakan masa gagal atau tetapan zon waktu salah. Di Golang, anda boleh menggunakan fungsi settimeofday() dalam pakej syscall untuk menetapkan masa sistem. Kodnya adalah seperti berikut:
import ( "syscall" "time" ) func main() { sec := time.Now().Unix() nsec := time.Now().UnixNano() tv := syscall.Timeval{Sec: int64(sec), Usec: int64(nsec) / 1000} err := syscall.Settimeofday(&tv) if err != nil { // error handling } }
di mana, saat ialah bilangan saat masa sistem semasa, dan nsec ialah bilangan nanosaat masa sistem semasa. Dengan menukar kedua-dua nilai ini kepada pembolehubah jenis Timeval dan kemudian menghantarnya ke dalam fungsi syscall.Settimeofday(), masa sistem boleh ditetapkan.
Perlu diingatkan bahawa mengubah suai masa sistem memerlukan hak pentadbir atau hak akar. Jika tiada kebenaran yang berkaitan, kod di atas akan menimbulkan ralat kebenaran yang tidak mencukupi.
3. Laraskan ketepatan masa
Kita mungkin perlu memperhalusi masa sistem, seperti menambah offset atau melaraskan masa kepada bilangan saat yang ditentukan. Di Golang, ini juga boleh dicapai melalui fungsi Add() dan fungsi Unix() dalam pakej masa. Kodnya adalah seperti berikut:
package main import ( "fmt" "time" ) func main() { duration, _ := time.ParseDuration("1h30m") now := time.Now().Add(duration) fmt.Println(now) timestamp := time.Now().Unix() adjustedTime := time.Unix(timestamp+3600, 0) fmt.Println(adjustedTime) }
Jika anda ingin menambah offset, contohnya, tambah 1 jam dan 30 minit pada masa semasa, anda boleh menggunakan fungsi masa.ParseDuration() untuk menghuraikan rentetan tempoh masa yang perlu ditambah ke dalam jenis Tempoh, dan kemudian memperhalusi masa melalui fungsi masa.Now().Tambah().
Jika anda perlu melaraskan masa kepada bilangan saat yang ditentukan, anda boleh mendapatkan bilangan saat masa semasa melalui masa.Now().Fungsi Unix() dan tambah bilangan saat yang perlu dilaraskan kepada ini, dan kemudian Bina Semula masa melalui fungsi time.Unix(). Sebagai contoh, kod di atas akan meningkatkan masa semasa sebanyak 1 jam, atau melaraskan masa semasa kepada titik masa yang 3600 saat lebih tinggi daripada cap masa 00:00:00 pada 1 Januari 1970.
4. Ringkasan
Melalui kaedah di atas, kita boleh mendapatkan masa sistem dengan mudah, mengubah suai nilai masa sistem, dan juga memperhalusi masa. Bagi pembangun Golang, ini sudah pasti akan meningkatkan kecekapan pembangunan dan membantu mereka menangani pelbagai masalah pengiraan masa dengan lebih baik.
Perlu diingatkan bahawa dalam persekitaran pengeluaran, mengubah suai masa sistem perlu dipertimbangkan dengan teliti, kerana kestabilan dan keselamatan sistem mungkin terjejas. Adalah disyorkan bahawa apabila mengubah suai masa sistem, pengubahsuaian diuji sepenuhnya untuk memastikan keselamatan pengubahsuaian.
Atas ialah kandungan terperinci masa sistem set golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!