penukaran masa golang

May 27, 2023 pm 01:38 PM

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)
}
Salin selepas log masuk

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
Salin selepas log masuk

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)
Salin selepas log masuk

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
Salin selepas log masuk

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)
Salin selepas log masuk

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
Salin selepas log masuk

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)
Salin selepas log masuk

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
Salin selepas log masuk

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:

  • Komponen penukaran masa dalam pustaka Gorm
  • Pustaka Masa sumber terbuka Rob Pike
  • Pustaka TimeUtils sumber terbuka Bjoernu

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!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah kelemahan debian openssl Apakah kelemahan debian openssl Apr 02, 2025 am 07:30 AM

OpenSSL, sebagai perpustakaan sumber terbuka yang digunakan secara meluas dalam komunikasi yang selamat, menyediakan algoritma penyulitan, kunci dan fungsi pengurusan sijil. Walau bagaimanapun, terdapat beberapa kelemahan keselamatan yang diketahui dalam versi sejarahnya, yang sebahagiannya sangat berbahaya. Artikel ini akan memberi tumpuan kepada kelemahan umum dan langkah -langkah tindak balas untuk OpenSSL dalam sistem Debian. Debianopenssl yang dikenal pasti: OpenSSL telah mengalami beberapa kelemahan yang serius, seperti: Kerentanan Pendarahan Jantung (CVE-2014-0160): Kelemahan ini mempengaruhi OpenSSL 1.0.1 hingga 1.0.1f dan 1.0.2 hingga 1.0.2 versi beta. Penyerang boleh menggunakan kelemahan ini untuk maklumat sensitif baca yang tidak dibenarkan di pelayan, termasuk kunci penyulitan, dll.

Bagaimana anda menggunakan alat PPROF untuk menganalisis prestasi GO? Bagaimana anda menggunakan alat PPROF untuk menganalisis prestasi GO? Mar 21, 2025 pm 06:37 PM

Artikel ini menerangkan cara menggunakan alat PPROF untuk menganalisis prestasi GO, termasuk membolehkan profil, mengumpul data, dan mengenal pasti kesesakan biasa seperti CPU dan isu memori.

Bagaimana anda menulis ujian unit di GO? Bagaimana anda menulis ujian unit di GO? Mar 21, 2025 pm 06:34 PM

Artikel ini membincangkan ujian unit menulis di GO, meliputi amalan terbaik, teknik mengejek, dan alat untuk pengurusan ujian yang cekap.

Perpustakaan apa yang digunakan untuk operasi nombor terapung di GO? Perpustakaan apa yang digunakan untuk operasi nombor terapung di GO? Apr 02, 2025 pm 02:06 PM

Perpustakaan yang digunakan untuk operasi nombor terapung dalam bahasa Go memperkenalkan cara memastikan ketepatannya ...

Apakah masalah dengan thread giliran di crawler colly go? Apakah masalah dengan thread giliran di crawler colly go? Apr 02, 2025 pm 02:09 PM

Masalah Threading Giliran di GO Crawler Colly meneroka masalah menggunakan Perpustakaan Colly Crawler dalam bahasa Go, pemaju sering menghadapi masalah dengan benang dan permintaan beratur. � ...

Berubah dari front-end ke pembangunan back-end, adakah lebih menjanjikan untuk belajar Java atau Golang? Berubah dari front-end ke pembangunan back-end, adakah lebih menjanjikan untuk belajar Java atau Golang? Apr 02, 2025 am 09:12 AM

Laluan Pembelajaran Backend: Perjalanan Eksplorasi dari Front-End ke Back-End sebagai pemula back-end yang berubah dari pembangunan front-end, anda sudah mempunyai asas Nodejs, ...

Bagaimana anda menentukan kebergantungan dalam fail go.mod anda? Bagaimana anda menentukan kebergantungan dalam fail go.mod anda? Mar 27, 2025 pm 07:14 PM

Artikel ini membincangkan menguruskan kebergantungan modul Go melalui Go.Mod, meliputi spesifikasi, kemas kini, dan resolusi konflik. Ia menekankan amalan terbaik seperti versi semantik dan kemas kini biasa.

Kaedah Pemantauan PostgreSQL di bawah Debian Kaedah Pemantauan PostgreSQL di bawah Debian Apr 02, 2025 am 07:27 AM

Artikel ini memperkenalkan pelbagai kaedah dan alat untuk memantau pangkalan data PostgreSQL di bawah sistem Debian, membantu anda memahami pemantauan prestasi pangkalan data sepenuhnya. 1. Gunakan PostgreSQL untuk membina pemantauan PostgreSQL sendiri menyediakan pelbagai pandangan untuk pemantauan aktiviti pangkalan data: PG_STAT_ACTIVITY: Memaparkan aktiviti pangkalan data dalam masa nyata, termasuk sambungan, pertanyaan, urus niaga dan maklumat lain. PG_STAT_REPLITI: Memantau status replikasi, terutamanya sesuai untuk kluster replikasi aliran. PG_STAT_DATABASE: Menyediakan statistik pangkalan data, seperti saiz pangkalan data, masa komitmen/masa rollback transaksi dan petunjuk utama lain. 2. Gunakan alat analisis log pgbadg

See all articles