เวลาและระยะเวลา
แทนช่วงเวลาและช่วงระยะ
เวลาและระยะเวลา เป็นบทเรียน Go Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Go Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Go Academy มีบทเรียนทั้งหมด 4 บทเรียน
แพ็กเกจ time
แพ็กเกจ time ของ Go ใช้แทนจุดเวลาและช่วงเวลาระหว่างจุดเวลาเหล่านั้น
time.Timeคือจุดเวลาเฉพาะtime.Durationคือระยะเวลา
package main
import (
"fmt"
"time"
)
func main() {
var d time.Duration = 2 * time.Second
fmt.Println(d)
}การรับเวลาปัจจุบัน
time.Now() ส่งคืนจุดเวลาปัจจุบันในรูปแบบ time.Time (ค่าที่แน่นอนขึ้นอยู่กับเวลาที่โปรแกรมทำงาน)
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now()
fmt.Println(now.Year())
}การสร้างเวลาที่เฉพาะเจาะจง
time.Date สร้างจุดเวลาที่แน่นอนจากส่วนประกอบต่าง ๆ ได้แก่ ปี เดือน วัน ชั่วโมง นาที วินาที นาโนวินาที และตำแหน่ง
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2026, time.May, 30, 9, 0, 0, 0, time.UTC)
fmt.Println(t)
}การอ่านส่วนประกอบของเวลา
time.Time มีเมธอดอย่าง Year, Month, Day, Hour และ Weekday
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2026, time.May, 30, 0, 0, 0, 0, time.UTC)
fmt.Println(t.Month(), t.Day(), t.Weekday())
}ค่าคงที่ของระยะเวลา
สร้างระยะเวลาโดยคูณค่าคงที่ของหน่วย ได้แก่ time.Hour, time.Minute, time.Second, time.Millisecond
package main
import (
"fmt"
"time"
)
func main() {
d := 1*time.Hour + 30*time.Minute
fmt.Println(d)
}การแปลงระยะเวลา
เมธอดอย่าง Seconds(), Minutes() และ Hours() ส่งคืนระยะเวลาในรูปแบบ float64 ตามหน่วยนั้น
package main
import (
"fmt"
"time"
)
func main() {
d := 90 * time.Minute
fmt.Println(d.Hours())
fmt.Println(d.Seconds())
}การเพิ่มเวลา
t.Add(d) ส่งคืนเวลาใหม่ที่เลื่อนไปตามระยะเวลาเดิม ค่าเดิมไม่เปลี่ยนแปลงเพราะ time.Time เป็นประเภทค่า
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2026, time.May, 30, 9, 0, 0, 0, time.UTC)
later := t.Add(2 * time.Hour)
fmt.Println(later.Hour())
}การเพิ่มหน่วยตามปฏิทิน
t.AddDate(years, months, days) เลื่อนเวลาไปตามจำนวนในปฏิทิน โดยจัดการความยาวของเดือนและปีอธิกสุรทินได้อย่างถูกต้อง
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2026, time.January, 31, 0, 0, 0, 0, time.UTC)
next := t.AddDate(0, 1, 0)
fmt.Println(next.Month(), next.Day())
}ความแตกต่างระหว่างเวลา
t2.Sub(t1) คืนค่า Duration ระหว่างเวลาสองช่วง หากได้ผลลัพธ์เป็นลบ แสดงว่า t2 เกิดขึ้นก่อน
package main
import (
"fmt"
"time"
)
func main() {
a := time.Date(2026, time.May, 30, 9, 0, 0, 0, time.UTC)
b := time.Date(2026, time.May, 30, 12, 0, 0, 0, time.UTC)
fmt.Println(b.Sub(a))
}การเปรียบเทียบเวลา
ใช้ Before, After และ Equal เพื่อเปรียบเทียบขณะเวลา ควรหลีกเลี่ยง == เพราะตัวดำเนินการนี้จะเปรียบเทียบเขตเวลาภายในด้วย
package main
import (
"fmt"
"time"
)
func main() {
a := time.Date(2026, 5, 30, 9, 0, 0, 0, time.UTC)
b := time.Date(2026, 5, 30, 10, 0, 0, 0, time.UTC)
fmt.Println(a.Before(b))
}การประทับเวลาแบบ Unix
t.Unix() ให้ค่าจำนวนวินาทีนับตั้งแต่วันที่ 1 มกราคม ค.ศ. 1970 ส่วน time.Unix(sec, 0) จะแปลงกลับเป็น time.Time
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2026, 5, 30, 0, 0, 0, 0, time.UTC)
secs := t.Unix()
fmt.Println(time.Unix(secs, 0).UTC().Year())
}ตรวจสอบความเข้าใจ
t2.Sub(t1) คืนค่าอะไร
สรุปทบทวน: เวลาและระยะเวลา
คุณได้เรียนรู้แบบจำลองเวลาพื้นฐานดังนี้:
time.Timeคือขณะเวลา ส่วนtime.Durationคือช่วงระยะเวลา- สร้างค่าด้วย
NowและDateเลื่อนเวลาด้วยAddและAddDate - วัดความแตกต่างด้วย
Subและเปรียบเทียบด้วยBefore/After
package main
import (
"fmt"
"time"
)
func main() {
start := time.Date(2026, 5, 30, 8, 0, 0, 0, time.UTC)
end := start.Add(45 * time.Minute)
fmt.Println(end.Sub(start).Minutes(), "minutes")
}คำถามที่พบบ่อย
บทเรียน “เวลาและระยะเวลา” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “เวลาและระยะเวลา” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Go Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Go Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “เวลาและระยะเวลา”
แทนช่วงเวลาและช่วงระยะ คุณปฏิบัติ Go Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Go Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Go Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “เวลาและระยะเวลา” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Go Academy นี้ได้ไหม
ได้ บทเรียน Go Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เวลาและระยะเวลา
- การจัดรูปแบบและการแยกวิเคราะห์
- ตัวจับเวลาและตัวนับเวลา
- เขตเวลา