Sana va vaqt bilan ishlash
Go da sana va vaqt bilan ishlash uchun time
paketi mavjud, quyida bu paket bilan ishlashni ko'rib chiqamiz.
Ayni vaqtni aniqlash.
Natija:
Natijani qismlarga ajratib tushuntiramiz:
Qism | Ma'nosi |
---|---|
2025-08-02 | yil-oy-kun |
15:50:06.3940473 | Soat:daqiqasi:soniya.nanosekunda (15:50:06 va 3940473 nanosekunda) |
+0500 | UTC offset: bu vaqt UTC'dan +5 soat oldin (ya'ni, Asia/Tashkent vaqti) |
+05 | Bu ham zona offset, ammo bu qisqa variant (ba'zida vaqt zonasi kodini bildiradi) |
m=+0.001661801 | Bu monotonic clock qiymati: dastur boshlanganidan buyon qancha vaqt o'tgani (sekundlarda) |
Info
Monotonic Time - operatsion tizim tomonidan taqdim etiladigan timer bo'lib, kompyuter yoqilganidan keyin yoki dasturning ishga tushganidan buyon o'tgan vaqtni aniq o'lchash uchun ishlatiladi. Goda Monotonic Time Go dastur boshlangandan beri o'tgan vaqt.
Yuqoridagi misolda chiqgan natijada bizga keraksiz bo'lgan qismlar ham bor, sanani va vaqtni alohida ajratib olishimiz kerak. Buning uchun bizga sana va vaqtni formatlab olish funksiyasi kerak bo'ladi.
Sana va vaqtni formatlash
Natija:
Yuqoridagi misol uchun sizda 02-01-2006, 15:04:05 va Format nima degan savollar tug'ilgan bo'lishi mumkin quyida tushuntirib o'tamiz.
time.Format()
— Go'da sana/vaqtni qanday ko'rinishda chiqishini belgilab beradi.- 02-01-2006 bu Go tilida sananing maxsus namunasi. Go da sana uchun namuna shunday qabul qilingan agar bu namuna o'zgarsa kutilgan natija olinmaydi, oddiy matn deb qabul qiladi. Quyida namunalar uchun foydalanishga mo'ljallangan maxsus so'zlar jadval ko'rinishida keltrilgan.
time.Format
uchun maxsus so'zlar
Format | Tushuntirish |
---|---|
2006 |
Yil (to'liq) |
06 |
Yil (so'nggi 2 raqam) |
01 |
Oy (raqam, 2 xonali) |
Jan |
Oy nomi (3 harf) |
January |
Oy nomi (to'liq) |
02 |
Kun (oy kuni, 2 xonali) |
Monday |
Haftaning to'liq nomi |
Mon |
Haftaning qisqa nomi |
15 |
Soat (24-soat formatda) |
03 |
Soat (12-soat formatda) |
PM |
AM/PM (katta harf) |
pm |
am/pm (kichik harf) |
04 |
Daqiqa (2 xonali) |
05 |
Soniya (2 xonali) |
.000 |
Millisekund (3 xonali) |
.000000 |
Mikrosekund (6 xonali) |
.000000000 |
Nanosekund (9 xonali) |
MST |
Vaqt zonasi qisqa nomi |
-0700 |
Vaqt zonasi offset (soat/dakika) |
-07:00 |
Vaqt zonasi offset (: bilan) |
Z07:00:00 |
To'liq offset (soat:min:sek) |
Misol:
Natija:
2006 (Yil to'liq) -> August 2, 2025 16:25:38
2006 (Yil to'liq) -> 2025
06 (Yil oxirgi 2 raqam) -> 25
01 (Oy raqam, 2 xonali) -> 08
Jan (Oy qisqa nomi) -> Aug
January (Oy to'liq nomi) -> August
02 (Kun, 2 xonali) -> 02
Monday (Hafta kuni, to'liq) -> Saturday
Mon (Hafta kuni, qisqa) -> Sat
15 (Soat 24h formatda) -> 16
03 (Soat 12h formatda) -> 04
PM (AM/PM katta harf) -> PM
pm (am/pm kichik harf) -> pm
04 (Daqiqa) -> 25
05 (Soniya) -> 38
.000 (Millisekund) -> .214
.000000 (Mikrosekund) -> .214416
.000000000 (Nanosekund) -> .214416400
MST (Vaqt zonasi nomi) -> +05
-0700 (UTC offset) -> +0500
-07:00 (UTC offset, `:` bilan) -> +05:00
Z07:00:00 (To'liq offset) -> +05:00:00
Satrni vaqtga o'girish
Go tilida satr -> time.Time
konvertatsiyasi uchun time.Parse()
funksiyasidan foydalaniladi.
Bu funksiya quyidagicha ishlaydi:
format bu yerda time.Format()
dagi kabi 2006-01-02 15:04:05 namunasi bo'yicha yoziladi.
Misol:
Natija:
Vaqt bo'yicha ham yuqoridagi kabi o'giriladi, quyida vaqt va vaqt zonasi bo'yicha misol ko'ramiz:
Natija:
Goda vaqt va sana bo'yicha ishlashni boshqa imkoniyatlari
Vaqtni qo'lda hosil qilishni yana bir usuli:
Vaqtga qo'shish:
Vaqt ayirish:
Sanaga qo'shish:
Sana ayirish:
Vaqt kutish:
time.Sleep(1 * time.Second)
time.Sleep(1 * time.Millisecond)
time.Sleep(1 * time.Nanosecond)
time.Sleep(1 * time.Microsecond)
time.Sleep(1 * time.Minute)
time.Sleep(1 * time.Hour)