Output Tidak Dijangka dari masa.Masa: Menyahmisti rentetan "m= "
Apabila program Go melaksanakan fungsi masa.Now() , ia mendapatkan semula cap masa semasa. Output lalai cap masa ini telah berkembang dari semasa ke semasa, terutamanya dengan keluaran Go 1.9.
Enigma "m= "
Dalam versi lama Go, masa .Now() akan mengeluarkan rentetan dalam format berikut:
2018-07-04 12:03:07.2911671 +0530 IST
Walau bagaimanapun, dalam Go 1.9 dan kemudian, output telah dilanjutkan untuk memasukkan rentetan "m= " misteri:
2018-07-04 12:03:07.2911671 +0800 +08 m=+0.002000201
Mengapa percanggahan? Ini disebabkan oleh penambahan sokongan jam monoton dalam Go 1.9. Rentetan "m= " mewakili masa monotonik sejak permulaan program, dinyatakan sebagai bilangan titik terapung saat.
Elakkan Kejutan Format dengan Format()
Daripada bergantung pada output lalai masa.Now(), adalah disyorkan untuk menggunakan fungsi Format() untuk menentukan format tersuai untuk cap waktu. Contohnya:
import ( "fmt" "time" ) func main() { t := time.Now() fmt.Println(t.Format("2006-01-02 15:04:05.000000")) }
Ini akan mengeluarkan cap masa dalam format yang konsisten tanpa mengira versi Go:
2018-07-04 12:03:07.2911671
Dengan menggunakan Format(), anda boleh memastikan program anda sentiasa keluar cap masa dalam format yang anda jangkakan.
Atas ialah kandungan terperinci Mengapakah Output `time.Now()` Go Termasuk 'm= ' dalam Versi Kemudian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!