เขตเวลาและโลแคล
จัดการความแตกต่างของเขตเวลาและโลแคลอย่างถูกต้อง
เขตเวลาและโลแคล เป็นบทเรียน Swift Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Swift Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน
เขตเวลาและภาษาท้องถิ่น
ช่วงเวลา Date เดียวกันจะแสดงผลแตกต่างกันไปทั่วโลก TimeZone และภาษาท้องถิ่นจะเป็นตัวกำหนดวิธีตีความและการแสดงผล
พื้นฐานของ TimeZone
TimeZone แทนค่าชดเชยจาก UTC รวมถึงกฎเวลาออมแสง ส่วน TimeZone.current คือเขตเวลาของอุปกรณ์
import Foundation
let tz = TimeZone.current
print("Identifier present: \(!tz.identifier.isEmpty)")การสร้างเขตเวลาเฉพาะ
สร้างเขตเวลาที่มีชื่อด้วย TimeZone(identifier:) เช่น “America/New_York” หรือ “Europe/Istanbul”
import Foundation
if let tokyo = TimeZone(identifier: "Asia/Tokyo") {
print("Tokyo offset seconds: \(tokyo.secondsFromGMT())")
}ค่าชดเชยจาก GMT
secondsFromGMT(for:) ให้ค่าชดเชยปัจจุบัน ซึ่งอาจเปลี่ยนแปลงระหว่างปีเนื่องจากเวลาออมแสง
import Foundation
let utc = TimeZone(identifier: "UTC")!
print("UTC offset is zero: \(utc.secondsFromGMT() == 0)")เขตเวลามีผลต่อปฏิทิน
กำหนดค่า timeZone ของปฏิทิน เพื่อให้การคำนวณวันและชั่วโมงใช้ภูมิภาคนั้นแทนค่าเริ่มต้นของอุปกรณ์
import Foundation
var cal = Calendar.current
cal.timeZone = TimeZone(identifier: "UTC")!
let hour = cal.component(.hour, from: Date())
print("Hour in UTC between 0 and 23: \(0...23 ~= hour)")เขตเวลาในการจัดรูปแบบ
Date.FormatStyle สามารถเก็บเขตเวลาเฉพาะไว้ได้ เพื่อให้ผลลัพธ์สะท้อนภูมิภาคนั้นโดยไม่ขึ้นกับการตั้งค่าของอุปกรณ์
import Foundation
let style = Date.FormatStyle(date: .omitted, time: .shortened)
.timeZone(TimeZone(identifier: "UTC")!)
let s = Date().formatted(style)
print(!s.isEmpty)พื้นฐานของภาษาท้องถิ่น
Locale เก็บภาษาและธรรมเนียมประจำภูมิภาค เช่น ชื่อเดือน วันแรกของสัปดาห์ และลำดับการแสดงตัวเลขกับวันที่
import Foundation
let locale = Locale.current
print("Has identifier: \(!locale.identifier.isEmpty)")การสร้างภาษาท้องถิ่น
สร้างภาษาท้องถิ่นเฉพาะด้วย Locale(identifier:) เช่น “fr_FR” หรือ “tr_TR”
import Foundation
let french = Locale(identifier: "fr_FR")
print("French locale id: \(french.identifier)")ภาษาท้องถิ่นเปลี่ยนผลลัพธ์
การนำภาษาท้องถิ่นไปใช้กับสไตล์การจัดรูปแบบจะเปลี่ยนชื่อเดือนและลำดับการแสดงผล วันที่เดียวกันจึงอ่านแตกต่างกันในแต่ละภาษา
import Foundation
let now = Date()
let style = Date.FormatStyle(date: .long, time: .omitted)
.locale(Locale(identifier: "en_US"))
print(!now.formatted(style).isEmpty)ภาษาท้องถิ่นและปฏิทินทำงานร่วมกัน
ภาษาท้องถิ่นยังมีผลต่อวันแรกของสัปดาห์และการนับหมายเลขสัปดาห์ของปฏิทินด้วย ควรใช้เขตเวลา ภาษาท้องถิ่น และปฏิทินร่วมกันเพื่อให้ได้ผลลัพธ์ที่ถูกต้องอย่างครบถ้วน
import Foundation
var cal = Calendar(identifier: .gregorian)
cal.locale = Locale(identifier: "en_US")
print("First weekday: \(cal.firstWeekday)")จัดเก็บเป็น UTC แสดงผลตามท้องถิ่น
แนวทางปฏิบัติที่ดีที่สุดคือจัดเก็บและส่งวันที่ในรูปแบบ UTC จากนั้นจึงแปลงเป็นเขตเวลาและภาษาท้องถิ่นของผู้ใช้เฉพาะตอนแสดงผล
import Foundation
let instant = Date()
let utcStyle = Date.FormatStyle(date: .numeric, time: .standard)
.timeZone(TimeZone(identifier: "UTC")!)
print("UTC display ready: \(!instant.formatted(utcStyle).isEmpty)")ตรวจสอบความเข้าใจ
แนวทางที่แนะนำสำหรับจัดการวันที่ระหว่างภูมิภาคต่าง ๆ คืออะไร
ทบทวน
TimeZone กำหนดค่าชดเชยจาก UTC และกฎ DST ขณะที่ภาษาท้องถิ่นควบคุมภาษาและรูปแบบประจำภูมิภาค ทั้งสองอย่างสามารถกำหนดให้กับปฏิทินและสไตล์การจัดรูปแบบได้ ควรจัดเก็บวันที่ใน UTC และแปลงเป็นเขตเวลาและภาษาท้องถิ่นเมื่อแสดงผลเท่านั้น เท่านี้ก็จบหลักสูตรวันที่และปฏิทิน
คำถามที่พบบ่อย
บทเรียน “เขตเวลาและโลแคล” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “เขตเวลาและโลแคล” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Swift Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “เขตเวลาและโลแคล”
จัดการความแตกต่างของเขตเวลาและโลแคลอย่างถูกต้อง คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Swift Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Swift Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “เขตเวลาและโลแคล” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Swift Academy นี้ได้ไหม
ได้ บทเรียน Swift Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ