Aika ja päivämäärä ovat tärkeitä osia monissa ohjelmistoissa ajanhallinta-apuohjelmista verkkosovelluksiin. Ohjelmoijana sinun on osattava käsitellä aikaa ja päivämäärää millä tahansa kielellä.

In Go, aika paketti niputtaa toiminnot ajan ja päivämäärän käsittelyä varten. Voit käyttää näitä toimintoja missä tahansa lähdetiedostossa tuomalla kyseisen paketin.

Mitä ajan ja päivämäärän manipulointi siis tarkoittaa, ja miten voit manipuloida aikaa ja päivämäärää Gossa?

Mitä on ajan ja päivämäärän manipulointi?

Ohjelmasi vaatimusten mukaan sen voi joutua hallitsemaan, hallitsemaan tai säätämään käyttäytymistä tai aikojen ja päivämäärien esitystapaa.

Eri ohjelmointikieliä niillä on omat toiminnot ajan ja päivämäärän muokkaamiseen. Go-kielellä on laajat ominaisuudet, jotka ovat hyödyllisiä tähän tarkoitukseen.

Aika- ja päivämääräkäsittely voi sisältää:

  • Sijainnin tai aikavyöhykkeen nykyisen ajan saaminen.
  • Aritmeettisten operaatioiden suorittaminen kellonaikoina ja päivämäärillä.
  • Ajan ja päivämäärän syöttö-/tulostusmuodon muuttaminen.
instagram viewer

Aloita ajan ja päivämäärän muokkaaminen Go-sovelluksissasi tuomalla aika pakettia muiden käyttämiesi pakettien rinnalla.

tuonti (
"fmt"
"aika"
)

Kuinka saada nykyinen kellonaika ja päivämäärä Gossa

Yleinen käyttötapa ajan manipuloinnille on nykyisen paikallisen ajan tai tietyn aikavyöhykkeen tai sijainnin nykyisen ajan saaminen.

Voit saada kellonajan ja päivämäärän paikallista aikaasi tai tietyssä aikavyöhykkeessä tai paikassa käyttämällä aika. Nyt() ja aika. LoadLocation() toiminnot:

func pää(){
// Hanki nykyinen aika ja päivämäärä paikallista aikaa
myTime := ime. Nyt()
fmt. Println("Nykyinen aika sisään ", aikani. Sijainti(), " On: ", aikani)

// Toinen tapa saada paikallinen aika
sijainti, _ := aika. LoadLocation("Paikallinen") // tai aika. LoadLocation("")
fmt. Println("Nykyinen aika sisään ", sijainti, " On: ", aika. Nyt().In (sijainti))

// toiseen paikkaan
sijainti, _ = aika. LoadLocation("Amerikka/New_York")
fmt. Println("Nykyinen aika sisään ", sijainti, " On: ", aikani. Paikalla (sijainti))

// saada nykyinen aika Mountain Time Zone (MST) -alueella
sijainti, _ = aika. LoadLocation("MST")
fmt. Println("Nykyinen aika sisään ", sijainti, " On: ", aikani. Paikalla (sijainti))
}

Yllä olevan ohjelman suorittaminen komennolla mene suorittamaan tiedostonimi.go tuottaa seuraavan lähdön terminaalissa:

LoadLocation-menetelmä ei tue kaikkia sijainti- ja aikavyöhykelyhenteitä. Mukaan Mene dokumentaatioon, se tukee vain sijainteja IANA.org-tietokanta.

Erillisten komponenttien saaminen tietystä päivämäärästä

Voit saada jokaisen aikaleiman komponentin erikseen, joka on samanlainen kuin milloin työskennellä ajan ja päivämäärän kanssa JavaScriptissä.

On olemassa lukuisia tapoja saavuttaa tämä Go'sin avulla aika toimintoja. Tämä osa kuvaa jokaista menetelmää.

Voit käyttää Päivämäärä() toiminto saadaksesi päivän, kuukauden ja vuoden sekä Kello() toiminto saadaksesi tunnit, minuutit ja sekunnit. Esimerkiksi:

funcpää() {
myTime := aika. Nyt();
vuosi, kuukausi, päivä := myTime. Päivämäärä()
fmt. Println("Vuosi :", vuosi)
fmt. Println("Kuukausi :", kuukausi)
fmt. Println("Päivä :", päivä)

tunti, min, sek := myTime. Kello()
fmt. Println("Tunti :", tunti)
fmt. Println("Minuutti :", min)
fmt. Println("Sekuntia :", sek)
}

Tulos havainnollistaa aikaleiman eri osia:

Voit myös saada aikaleiman yksiköt yksitellen -sovelluksella aika toiminnot jokaiselle niistä:

funcpää() {
myTime := aika. Nyt()

// saada jokainen yksikkö vuodesta nanosekuntiin
fmt. Println("Vuosi :", myTime. Vuosi ()
fmt. Println("Kuukausi:", myTime. Kuukausi())
fmt. Println("Päivä:", myTime. Päivä())
fmt. Println("Hour:", myTime. Tunnin())
fmt. Println("Minuutti :", myTime. Minuutti())
fmt. Println("Sekuntia :", myTime. Toinen())
fmt. Println("Nanosekunti :", myTime. nanosekunti())
}

Kuten tulos osoittaa, tämä antaa sinulle pääsyn myös nanosekunteihin:

Esimerkit tähän asti ovat keskittyneet aikaleimayksiköiden hankkimiseen nykyisestä ajasta. Voit suorittaa samanlaisia ​​toimia aikaleimalla, jota ei ole aika. Nyt().

Voit poimia tietyn päivämäärän vuoden, kuukauden, päivän, tunnin, minuutin ja sekunnin. Voit tehdä tämän joko alustamalla uuden päivämääräobjektin tai jäsentämällä päivämäärän merkkijonosta:

funcpää() {
// saada yksittäiset ajan komponentit vuodesta nanosekuntiin
// tietystä päivämäärästä
aikasi := aika. Päivämäärä(2020, 07, 1, 06, 32, 10, 0, aika. UTC)
fmt. Println("Vuosi :", aikasi. Vuosi ()
fmt. Println("Kuukausi:", aikasi. Kuukausi())
fmt. Println("Päivä:", aikasi. Päivä())
fmt. Println("Tunti:", aikasi. Tunnin())
fmt. Println("Minuutti :", aikasi. Minuutti())
fmt. Println("Sekuntia :", aikasi. Toinen())
fmt. Println("Nanosekunti :", aikasi. nanosekunti())
// käyttämällä Clock()-funktiota saadaksesi tunnit, minuutit ja sekunnit
yourHour, yourMin, yourSec := yourTime. Kello()
fmt. Println("Tunti :", sinun tuntisi)
fmt. Println("Minuutti :", yourMin)
fmt. Println("Sekuntia :", yoursec)

// saada aika ja päivämäärä merkkijonosta
päivämäärämerkkijono := "2020-07-0106:32:10"
ulkoasu := "2006-01-0215:04:05" // haluamasi tulostusmuoto
yourTime, _ = aika. Jäsennys (asettelu, päivämäärämerkkijono)
fmt. Println("Sinun aikasi on: ", sinun aikasi)
fmt. Println("Vuosi :", aikasi. Vuosi ()
fmt. Println("Kuukausi:", aikasi. Kuukausi())
fmt. Println("Päivä:", aikasi. Päivä())
fmt. Println("Tunti:", aikasi. Tunnin())
fmt. Println("Minuutti :", aikasi. Minuutti())
fmt. Println("Sekuntia :", aikasi. Toinen())
}

Tämä koodi tuottaa seuraavan tulosteen:

Huomaa, että Parse() käyttää UTC oletuksena, jos et määritä aikavyöhykettä päivämäärämerkkijonoon.

Kuinka suorittaa aritmeettisia operaatioita päivämäärän ja ajan kanssa

Aritmeettiset operaatiot ovat toinen manipulointityyppi, jonka voit suorittaa ajan ja päivämäärän mukaan Go-sovelluksessa. Yksinkertaiset toiminnot, kuten yhteen-, vähennys- ja aikaero, ovat kaikki mahdollisia.

Go antaa sinun määrittää aika. Kesto arvot kaikilla aikayksiköillä alkaen aika. Tunnin to aika. Nanosekunti. Voit käyttää näitä arvoja ajan lisäämiseen tai vähentämiseen Lisätä(). Siellä on myös AddDate() toiminto, joka ottaa 3 parametria: vuodet, kuukaudet ja päivät yhteen- tai vähennyslaskujen suorittamiseen.

Seuraava koodi osoittaa näiden toimintojen käytön:

funcpää() {
curTime := aika. Nyt()
curTime = curTime. Lisää (aika. Tunnin) // lisää tunnin
fmt. Println("Nykyinen aika on: ", curTime)
huomenna := curTime. Lisää (aika. tunti* 24)
fmt. Println("Tämä aika huomenna on: ", huomenna)
ensiviikko := curTime. Lisää (aika. tunti* 24 * 7)
fmt. Println("Tämä aika ensi viikolla on: ", ensi viikolla)

// käyttämällä AddDatea (y, m, d)
nextTomorrow := curTime. AddDate(0, 0, 2)
fmt. Println("Tällä kertaa Seuraava huomenna on: ", nextTomorrow)
nextMonth := Curtime. AddDate(0, 1, 0)
fmt. Println("Tämä aika ensi kuussa on: ", next Month)
FiveYearsAndOneMonthAfter := curTime. AddDate(5, 1, 0)
fmt. Println("Tällä kertaa viiden vuoden ja kuukauden kuluttua on: ", FiveYearsAndOneMonthAfter)
}

Joka tuottaa seuraavan tuloksen:

Voit myös vähentää ajan Lisätä() ja AddDate() välittämällä negatiivisia parametreja. Esimerkiksi:

funcpää() {
curTime := aika. Nyt()

// vähennä yksi päivä käyttämällä AddDate()
eilen := curTime. AddDate(0, 0, -1)
fmt. Println("Tämä aika eilen oli: ", eilen)

// vähennä kuukausi käyttämällä Add()
viime kuukausi := curTime. Lisää (aika. tunti* -24 * 30)
fmt. Println("Tämä aika viime kuussa oli: ", viime kuukausi)
}

Tuottaa tämän tuloksen:

Vaikka voit käyttää Lisätä() ja AddDate() löytääksesi eron päivämäärien välillä Golla on a Sub() toiminto, joka toimii hieman eri tavalla:

funcpää() {
curTime = aika. Nyt()
mennyt := aika. Päivämäärä(2022, aika. Joulukuu, 25, 12, 0, 0, 0, aika. UTC)
ero := mennyt. Sub (curTime)
fmt. Println("Ero nykyajan ja menneisyyden välillä on: ", ero)
// saada ero eri yksiköissä
vuotta := int(ero. Tuntia() / 24 / 365)
fmt. Println("Vuodet: ", vuotta)
kuukautta := int(ero. Tuntia() / 24 / 30)
fmt. Println("Kuukaudet: ", kuukautta)
päivää := int(ero. Tuntia() / 24)
fmt. Println("Päiviä: ", päivää)
tuntia := int(ero. Tuntia())
fmt. Println("Tunnit: ", tuntia)
// ero. Minuutit(), ero. Sekuntia(), ero. Millisekuntia(), erotus. Nanoseconds() palauttaa myös yksikkönsä
}

Tämä koodi tuottaa seuraavan tulosteen:

Kuinka saada aika ja päivämäärä eri muodoissa

Voit myös saada aika- ja päivämäärätulosteita useissa muodoissa käyttämällä Muoto() toiminto. Tässä on joitain yleisiä muotoilutyylejä:

funcpää() {
curTime = aika. Nyt()
// sisäänrakennetut vakiomuotoilutyylit
fmt. Println("Nykyinen aika on: ", curTime)
fmt. Println("Nykyinen aika RFC3339-muodossa on: ", curTime. Muoto (aika. RFC3339))
fmt. Println("Nykyinen aika RFC3339Nano-muodossa on: ", curTime. Muoto (aika. RFC3339Nano))
fmt. Println("Nykyinen aika RFC1123-muodossa on: ", curTime. Muoto (aika. RFC1123))
fmt. Println("Nykyinen aika RFC1123Z-muodossa on: ", curTime. Muoto (aika. RFC1123Z))
fmt. Println("Nykyinen aika RFC822-muodossa on: ", curTime. Muoto (aika. RFC822))
fmt. Println("Nykyinen aika RFC822Z-muodossa on: ", curTime. Muoto (aika. RFC822Z))
fmt. Println("Nykyinen aika RFC850-muodossa on: ", curTime. Muoto (aika. RFC850))
fmt. Println("Nykyinen aika ANSIC-muodossa on: ", curTime. Muoto (aika. ANSIC))
fmt. Println("Nykyinen aika Unix-muodossa on: ", curTime. Muoto (aika. UnixDate))
// mukautetut muotoilutyylit
// PP-KK-VVVV HH: MM: SS
fmt. Println("Nykyinen aika mukautetussa muodossa on: ", curTime. Muoto("02-01-200615:04:05"))
// KK-PP-VVVV HH: MM: SS
fmt. Println("Nykyinen aika mukautetussa muodossa on: ", curTime. Muoto("01-02-200615:04:05"))
// VVVV-KK-PP HH: MM: SS
fmt. Println("Nykyinen aika mukautetussa muodossa on: ", curTime. Muoto("2006-01-0215:04:05"))
// PP.KK.VVVV
fmt. Println("Nykyinen aika mukautetussa muodossa on: ", curTime. Muoto("02.01.2006"))
// PP/KK/VVVV
fmt. Println("Nykyinen aika mukautetussa muodossa on: ", curTime. Muoto("02/01/2006"))
// 1. helmikuuta 2006
fmt. Println("Nykyinen aika mukautetussa muodossa on: ", curTime. Muoto("02 tammikuu 2006"))
// 1. helmikuuta 2006 maanantai
fmt. Println("Nykyinen aika mukautetussa muodossa on: ", curTime. Muoto("02 helmikuu 2006 Maanantai"))
// 1. helmikuuta 2006 ma 15:04:05
fmt. Println("Nykyinen aika mukautetussa muodossa on: ", curTime. Muoto("02 helmikuu 2006 ma 15:04:05"))
}

Nämä erityyppiset muotoilut tuottavat seuraavan tulosteen:

Kellonajan ja päivämäärän manipulointi Go

Luettelo manipulaatioista, joita voit suorittaa kellonaikoina ja päivämäärinä, on lähes loputon. Sovelluksesi laajuudesta riippuen saatat joutua suorittamaan useita erilaisia ​​päivämäärä/aikatoimintoja.

Kaikkiin mahdollisiin käyttötapauksiin, aika paketti on erittäin toimiva ja siinä on monia sisäänrakennettuja menetelmiä.

Päivämäärän ja kellonajan manipuloinnin avulla voit luoda yksinkertaisen päivittäisen suunnittelijan tai tehtävien ajoitussovelluksen.