Date & Time #
Golang menyediakan paket time
untuk menangani tipe data date
dan time
. Paket ini menyediakan fungsi-fungsi dan tipe data untuk mengelola waktu, tanggal, durasi, dan format waktu. Berikut adalah penjelasan tentang tipe date time
di Golang dan berbagai operasi yang dapat dilakukan:
Mengimpor Paket time
#
Untuk menggunakan fungsi dan tipe data yang disediakan oleh paket time
, Anda harus mengimpornya terlebih dahulu.
import "time"
Mendapatkan Waktu Saat Ini #
Fungsi time.Now()
digunakan untuk mendapatkan waktu saat ini.
now := time.Now()
fmt.Println(now)
Membuat Objek Waktu #
Anda dapat membuat objek waktu dengan menggunakan fungsi time.Date
.
t := time.Date(2024, time.July, 28, 15, 30, 0, 0, time.UTC)
fmt.Println(t)
Menguraikan String Waktu #
Fungsi time.Parse
digunakan untuk menguraikan string waktu ke dalam objek waktu.
layout := "2006-01-02 15:04:05"
t, err := time.Parse(layout, "2024-07-28 15:30:00")
if err != nil {
fmt.Println(err)
}
fmt.Println(t)
Format Tanggal dan Waktu #
Fungsi Format
digunakan untuk mengubah objek waktu menjadi string dengan format tertentu.
formatted := now.Format("2006-01-02 15:04:05")
fmt.Println(formatted)
Menambahkan Durasi ke Waktu #
Anda dapat menambahkan durasi ke objek waktu menggunakan metode Add
.
later := now.Add(time.Hour * 2)
fmt.Println(later)
Mengurangi Durasi dari Waktu #
Anda dapat mengurangi durasi dari objek waktu menggunakan metode Add
dengan durasi negatif.
earlier := now.Add(-time.Hour * 2)
fmt.Println(earlier)
Menghitung Selisih Antara Dua Waktu #
Fungsi Sub
digunakan untuk menghitung selisih antara dua objek waktu.
duration := later.Sub(now)
fmt.Println(duration)
Mendapatkan Komponen Waktu #
Anda dapat mendapatkan komponen waktu (seperti tahun, bulan, hari, dll.) dari objek waktu.
year, month, day := now.Date()
hour, minute, second := now.Clock()
fmt.Printf("Date: %d-%d-%d\n", year, month, day)
fmt.Printf("Time: %d:%d:%d\n", hour, minute, second)
Contoh Lengkap Penggunaan Tipe date time
#
package main
import (
"fmt"
"time"
)
func main() {
// Mendapatkan waktu saat ini
now := time.Now()
fmt.Println("Current time:", now)
// Membuat objek waktu
t := time.Date(2024, time.July, 28, 15, 30, 0, 0, time.UTC)
fmt.Println("Specific time:", t)
// Menguraikan string waktu
layout := "2006-01-02 15:04:05"
parsedTime, err := time.Parse(layout, "2024-07-28 15:30:00")
if err != nil {
fmt.Println(err)
}
fmt.Println("Parsed time:", parsedTime)
// Format tanggal dan waktu
formatted := now.Format("2006-01-02 15:04:05")
fmt.Println("Formatted time:", formatted)
// Menambahkan durasi ke waktu
later := now.Add(time.Hour * 2)
fmt.Println("Two hours later:", later)
// Mengurangi durasi dari waktu
earlier := now.Add(-time.Hour * 2)
fmt.Println("Two hours earlier:", earlier)
// Menghitung selisih antara dua waktu
duration := later.Sub(now)
fmt.Println("Duration between now and two hours later:", duration)
// Mendapatkan komponen waktu
year, month, day := now.Date()
hour, minute, second := now.Clock()
fmt.Printf("Date: %d-%d-%d\n", year, month, day)
fmt.Printf("Time: %d:%d:%d\n", hour, minute, second)
}
Zona Waktu #
Anda juga dapat mengatur dan mengonversi zona waktu menggunakan paket time
.
Mengatur Zona Waktu #
location, err := time.LoadLocation("America/New_York")
if err != nil {
fmt.Println(err)
}
newYorkTime := now.In(location)
fmt.Println("New York time:", newYorkTime)
Mengonversi ke Zona Waktu Lain #
utcTime := now.UTC()
fmt.Println("UTC time:", utcTime)
Kesimpulan #
Dengan memahami tipe date time
dan berbagai operasi yang dapat dilakukan, Anda dapat mengelola dan memanipulasi data waktu dengan cara yang efisien dan akurat dalam program Golang.