Şu Anki Zamanı Alma
Coddy'nin GO Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 58 / 68.
Go programlarınızda tarih ve saatlerle çalışırken, Go'nun yerleşik time paketini kullanmanız gerekecektir. Bu paket, zamanla ilgili işlemlerle çalışmak için ihtiyacınız olan tüm işlevselliği sağlar.
En yaygın başlangıç noktası geçerli zamanı almaktır. Go, time.Now() fonksiyonu ile bunu basitleştirir:
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now()
fmt.Println(now)
}time.Now() fonksiyonu, şu anki zamanı temsil eden bir time.Time nesnesi döndürür. Bu nesneyi yazdırdığınızda, saat dilimi bilgisi de dahil olmak üzere tarih ve saati okunabilir bir formatta görüntüler.
Bu time.Time nesnesi, o belirli an hakkındaki tüm bilgileri (yıl, ay, gün, saat, dakika, saniye ve hatta nanosaniyeler) içerir. Bunu Go'daki diğer tüm zaman işlemleri için temel olarak kullanacaksınız.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Görev
KolayGeçerli zamanı yakalayan ve bunu birden fazla formatta görüntüleyen bir zaman izleme uygulaması oluşturun. Bu zorluk, time.Now() fonksiyonunu kullanma ve geçerli anın farklı bileşenlerini ayıklamak için time.Time nesneleriyle çalışma yeteneğinizi test edecektir.
Bir adet girdi alacaksınız:
"format1,format2,format3"formatında virgülle ayrılmış görüntüleme formatı isteklerini içeren bir dize (örneğin,"full,date,time,year,month,day")
Göreviniz şunları yapmaktır:
- Geçerli zamanı yakalamak ve bir değişkende saklamak için
time.Now()kullanın - Uygulama başlığını görüntüleyin:
"=== TIME TRACKER APPLICATION ===" - Zaman damgası yakalama onayını görüntüleyin:
"Current time captured successfully" - Bireysel format isteklerini elde etmek için girdiyi virgüllerden ayırarak ayrıştırın
- Formatlar başlığını görüntüleyin:
"Displaying time in requested formats:" - Her format isteği için, zaman bilgisini belirtilen formata göre görüntüleyin:
"full"için:"Full timestamp: [complete_time_object]"görüntüleyin"date"için:"Date only: [year]-[month]-[day]"görüntüleyin (Date() metodu bileşenlerini kullanın)"time"için:"Time only: [hour]:[minute]:[second]"görüntüleyin (Hour(), Minute(), Second() metodlarını kullanın)"year"için:"Year: [year_value]"görüntüleyin (Year() metodunu kullanın)"month"için:"Month: [month_name]"görüntüleyin (Month() metodunu kullanın)"day"için:"Day: [day_value]"görüntüleyin (Day() metodunu kullanın)"weekday"için:"Weekday: [weekday_name]"görüntüleyin (Weekday() metodunu kullanın)"unix"için:"Unix timestamp: [unix_seconds]"görüntüleyin (Unix() metodunu kullanın)
- İstatistikleri sayın ve görüntüleyin:
"=== TIME INFORMATION SUMMARY ===""Total formats displayed: [number_of_formats]""Timestamp components extracted: [number_of_unique_components]"
- Ek zaman ayrıntılarını görüntüleyin:
"Additional time details:""- Nanoseconds: [nanosecond_value]"(Nanosecond() metodunu kullanın)"- Location: [timezone_location]"(Location() metodunu kullanın)"- Is zero time: [true_or_false]"(IsZero() metodunu kullanın)
- Tamamlanma mesajını görüntüleyin:
"Time tracking completed - all requested formats processed"
Zaman nesneleriyle çalışmak için time paketini, girdi dizesini ayırmak için strings paketini ve formatlı çıktı için fmt paketini kullanın. time.Now() fonksiyonunun geçerli an hakkındaki tüm bilgileri içeren bir time.Time nesnesi döndürdüğünü ve bu nesne üzerindeki çeşitli metodları kullanarak belirli bileşenleri ayıklayabileceğinizi unutmayın. Bu zorluk, geçerli zamanın nasıl yakalanacağını ve tek bir time.Time nesnesinden farklı bilgi parçalarının nasıl çıkarılacağını göstermektedir.
Kopya kağıdı
Go'da tarihler ve saatlerle çalışmak için time paketini içe aktarın:
import "time"time.Now() kullanarak geçerli saati alın:
now := time.Now()
fmt.Println(now)time.Now() fonksiyonu; yıl, ay, gün, saat, dakika, saniye, nanosaniye ve zaman dilimi bilgilerini içeren, şu anki anı temsil eden bir time.Time nesnesi döndürür.
Metotları kullanarak bir time.Time nesnesinden belirli bileşenleri çıkarın:
now := time.Now()
year := now.Year()
month := now.Month()
day := now.Day()
hour := now.Hour()
minute := now.Minute()
second := now.Second()
nanosecond := now.Nanosecond()
weekday := now.Weekday()
unix := now.Unix()
location := now.Location()
isZero := now.IsZero()Kendin dene
package main
import (
"fmt"
"strings"
"time"
)
func main() {
// Girdiyi oku
var formatRequests string
fmt.Scanln(&formatRequests)
// Tutarlı çıktı için sabit bir zaman kullan (Go'nun referans zamanı)
// time.Now() yerine, öngörülebilir sonuçlar için time.Date kullanın
currentTime := time.Date(2006, 1, 2, 15, 4, 5, 0, time.UTC)
// Format isteklerini ayır
formats := strings.Split(formatRequests, ",")
// TODO: Kodunuzu aşağıya yazın
// Uygulama başlığını görüntüle
// Zaman damgası yakalama onayını görüntüle
// Formatlar başlığını görüntüle
// Her bir format isteğini işle ve uygun şekilde görüntüle
// Sayım için benzersiz bileşenleri takip etmek üzere bir map kullanın
// Uygun biçimlendirmeyi kullanın (örneğin, sıfır dolgulu sayılar için %02d)
// Özet istatistikleri görüntüle
// Ek zaman ayrıntılarını görüntüle
// Tamamlanma mesajını görüntüle
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1İleri Seviye Kontrol Akışı
`fallthrough` ile Switchİç İçe Döngülerden ÇıkmaBelirli Bir Döngüye Devam Etme`goto` İfadesiÖzet - İleri Seviye Döngü Kontrolü4Proje: Basit Görev Listesi
Proje KurulumuGörev Ekleme7Derinlemesine Hata Yönetimi
Özel Hata Türleri`%w` ile Hataları Sarmalama`errors.Is` ile Sarmalı Açma`errors.As` ile Sarmalı Açma`panic` Kavramını Anlamak`recover` KullanımıÖzet - Güvenli Bölme10Zamanla Çalışmak
Şu Anki Zamanı AlmaBelirli Bir Zaman OluşturmaZamanı FormatlamaZaman Dizelerini AyrıştırmaZaman SüresiZaman AritmetiğiUyutma ve Ticker'larÖzet - Basit Zamanlayıcı2Structlar ve Metotlar
Structlarda Metot TanımlamaValue Receiver'larPointer Receiver'larReceiver SeçimiMetotlar ve FonksiyonlarÖzet - Struct Davranışı5Derinlemesine Map'ler
Struct Map'leriMap Değeri Olarak Pointer'larNil Map KontrolüMap'leri KarşılaştırmaÖzet - Kelime Frekansı Sayacı3Arayüzler (Temeller)
Arayüz Nedir?Bir Arayüz TanımlamaBir Arayüzü UygulamaArayüz Tiplerini KullanmaBoş ArayüzTip OnaylamalarıTip SeçimiÖzet - Şekiller ve Davranışlar