Rumah >pembangunan bahagian belakang >Golang >Apakah kaedah pemprosesan masa dalam bahasa Go?

Apakah kaedah pemprosesan masa dalam bahasa Go?

王林
王林asal
2023-06-10 21:42:131530semak imbas

Bahasa Go ialah bahasa pengaturcaraan moden, dan masa memainkan peranan yang sangat penting dalam pembangunan. Bahasa Go menyediakan beberapa fungsi dan struktur masa terbina dalam untuk menjadikan pemprosesan masa lebih mudah. Dalam artikel ini, kami akan memperkenalkan beberapa kaedah pemprosesan masa yang biasa digunakan dalam bahasa Go.

  1. masa.Now()

Kita boleh menggunakan fungsi time.Now() untuk mendapatkan masa semasa:

now := time.Now()
fmt.Println(now)

Output:

2019-06-13 14:30:10.12345 +0800 CST m=+0.000000001

Seperti yang anda lihat, format output ialah YYYY-MM-DD HH:mm:ss.nnnnnn +0800 CST m=+0.000000001, dengan YYYY mewakili tahun, MM mewakili bulan, DD mewakili hari, HH mewakili jam, mm mewakili minit dan ss mewakili Saat, nnnnnn mewakili nanosaat, +0800 mewakili zon waktu, CST mewakili nama zon waktu, m=+0.000000001 mewakili masa relatif, iaitu masa dari 0:00:00 pada 1 Januari 1970. Anda boleh memilih maklumat masa yang diperlukan mengikut keperluan anda.

  1. Cap Masa

Cap masa Unix ialah bilangan saat dari 1 Januari 1970, 0:00:00 hingga sekarang. Dalam bahasa Go, kita boleh menggunakan fungsi time.Unix() untuk menukar saat kepada jenis masa atau menggunakan jenis masa untuk mendapatkan cap masa yang sepadan.

Dapatkan cap masa masa semasa:

now := time.Now().Unix()
fmt.Println(now)

Output:

1560425789

Tukar cap masa kepada jenis masa:

timestamp := 1560425789
t := time.Unix(timestamp, 0)
fmt.Println(t)

Output:

2019-06-13 14:43:09 +0800 CST
  1. Pemformatan masa

Dalam bahasa Go, kita boleh menggunakan fungsi time.Format() untuk menukar jenis masa kepada jenis rentetan. Dengan mentakrifkan beberapa aksara rujukan pemformatan khusus, kami boleh memaparkan masa mengikut cara yang kami perlukan.

Contoh:

t := time.Now()
fmt.Println(t.Format("2006-01-02 15:04:05"))

Output:

2019-06-13 14:50:11

"2006-01-02 15:04:05" dalam kod di atas ialah aksara rujukan format masa, yang khusus maksudnya adalah seperti berikut :

2006:年
01:月
02:日
15:小时
04:分钟
05:秒
  1. Tambahan dan penolakan masa

Dalam bahasa Go, kita boleh menggunakan fungsi masa.Tambah() untuk menambah dan menolak masa. Parameter fungsi Add() ialah jenis Tempoh, mewakili tempoh masa untuk ditambah atau ditolak. Di bawah ialah beberapa kod sampel yang menggunakan fungsi Add() untuk menambah dan menolak masa.

Contoh:

t := time.Now()
fmt.Println(t.Add(10 * time.Minute))
fmt.Println(t.Add(24 * time.Hour))

Output:

2019-06-13 15:07:34.877146776 +0800 CST m=+600.000277511
2019-06-14 14:57:34.877146776 +0800 CST
  1. Pengiraan perbezaan masa

Dalam bahasa Go, kita boleh menggunakan masa jenis mewakili perbezaan antara dua tempoh masa. Di bawah ialah beberapa kod sampel yang menggunakan Tempoh untuk mengira perbezaan masa.

Contoh:

t1 := time.Date(2019, time.June, 13, 12, 00, 55, 0, time.Local)
t2 := time.Date(2019, time.June, 13, 14, 20, 30, 0, time.Local)
diff := t2.Sub(t1)
fmt.Println(diff)

Output:

2h19m35s
  1. Pemasa

Dalam bahasa Go, kita boleh menggunakan masa. Jenis pemasa Cipta a pemasa dan gunakan saluran untuk mendapatkan peristiwa pencetus pemasa. Di bawah adalah contoh kod mudah.

Contoh:

func test() {
    fmt.Println("test")
}

func main() {
    timer := time.NewTimer(time.Second * 2)
    <-timer.C
    test()
}

Dalam kod di atas, pemasa 2 saat dicipta, kemudian acara dibaca dari saluran pemasa.C, dan akhirnya fungsi test() dipanggil.

Ringkasan

Artikel ini memperkenalkan beberapa kaedah pemprosesan masa yang biasa digunakan dalam bahasa Go, termasuk mendapatkan masa semasa, cap masa, pemformatan masa, penambahan dan penolakan masa, pengiraan perbezaan masa dan pemasa, dsb. . Kaedah pengurusan masa ini sangat penting dalam pembangunan harian, dan kita harus menguasainya secepat mungkin.

Atas ialah kandungan terperinci Apakah kaedah pemprosesan masa dalam bahasa Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn