A Time a Go-ban egy időpillanatot leíró típus.
A dátum- és időinformációk a metódusain keresztül érhetők el, hasonlíthatók össze és módosíthatók, de van néhány függvény, amelyet magán a time csomagon hívunk meg.
Az aktuális dátumot és időt a time.Now függvénnyel kérheted le.
A time.Parse függvény stringeket alakít Time típusú értékekké.
A Go sajátos módon írja le, hogyan adod meg az elemzéshez várt formátumot.
A formátumot úgy írod le, hogy példát adsz rá ennek a különleges időbélyegnek az értékeivel:
Mon Jan 2 15:04:05 -0700 MST 2006.
Például:
import "time"
func parseTime() time.Time {
date := "Tue, 09/22/1995, 13:00"
layout := "Mon, 01/02/2006, 15:04"
t, err := time.Parse(layout,date) // time.Time, error
}
// => 1995-09-22 13:00:00 +0000 UTC
A Time.Format() metódus az idő egy stringes reprezentációját adja vissza.
Ahogy a Parse függvénynél, a célformátumot itt is egy olyan példán keresztül adod meg, amely a különleges időbélyeg értékeit használja.
Például:
import (
"fmt"
"time"
)
func main() {
t := time.Date(1995,time.September,22,13,0,0,0,time.UTC)
formattedTime := t.Format("Mon, 01/02/2006, 15:04") // string
fmt.Println(formattedTime)
}
// => Fri, 09/22/1995, 13:00
Egyéni formátumhoz ezeknek a beállításoknak a kombinációját használd. A Go-ban emellett előre definiált dátum- és időbélyeg-formátumkonstansok is elérhetők.
| Idő | Beállítások |
|---|---|
| Év | 2006 ; 06 |
| Hónap | Jan ; January ; 01 ; 1 |
| Nap | 02 ; 2 ; _2 (a vezető 0-hoz) |
| A hét napja | Mon ; Monday |
| Óra | 15 ( 24 órás időformátum ) ; 3 ; 03 (AM vagy PM) |
| Perc | 04 ; 4 |
| Másodperc | 05 ; 5 |
| AM/PM jelölés | PM |
| Az év napja | 002 ; __2 |
A time.Time típusnak számos metódusa van egy adott időrész eléréséhez. Például óra: Time.Hour(), hónap: Time.Month().
Hogy ez pontosan hogyan működik, arról a hivatalos dokumentációban olvashatsz.
A time csomag egy másik típust is tartalmaz, a Duration-t, amely egy eltelt időtartamot ír le, emellett támogatja az időzónákat, az időzítőket és más kapcsolódó funkciókat, amelyekről egy másik fogalomban lesz szó.
Ebben a feladatban egy szépségszalon időpont-ütemezőjén dolgozol majd, amely 2012. szeptember 15-én nyílt meg.
Öt részfeladat vár rád, és mindegyikben időpontokkal lesz dolgod.
Valósítsd meg a Schedule függvényt, amely egy időpont szöveges formáját alakítja át a megfelelő time.Time formátumra:
Schedule("7/25/2019 13:45:00")
// => 2019-07-25 13:45:00 +0000 UTC
Valósítsd meg a HasPassed függvényt, amely átvesz egy időpontot, és ellenőrzi, hogy az a múltban volt-e:
HasPassed("July 25, 2019 13:45:00")
// => true
Valósítsd meg az IsAfternoonAppointment függvényt, amely átvesz egy időpontot, és ellenőrzi, hogy az délutánra esik-e (>= 12:00 és < 18:00):
IsAfternoonAppointment("Thursday, July 25, 2019 13:45:00")
// => true
Valósítsd meg a Description függvényt, amely átvesz egy időpontot, és visszaadja annak a dátumnak és időnek a leírását:
Description("7/25/2019 13:45:00")
// => "You have an appointment on Thursday, July 25, 2019, at 13:45."
Valósítsd meg az AnniversaryDate függvényt, amely visszaadja a szalon megnyitásának évfordulóját az aktuális évre UTC-ben.
Tegyük fel, hogy a jelenlegi év 2020:
AnniversaryDate()
// => 2020-09-15 00:00:00 +0000 UTC
Megjegyzés: a visszatérési érték egy time.Time, és a napszak nem számít.
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Go nyelvet 34 fogalom165 feladat segítségével, valódi emberi mentorálással, mindez ingyen.