Swift รู้จักกับ Date Format

Ton Attapong
Seekster Development
2 min readJul 14, 2019

เปลี่ยน String เป็น Date? เปลี่ยน Date เป็น String? ทำยังไง? ประกอบไปด้วยอะไรบ้าง? convert String to Date?, convert Date to String?

ก่อนที่เราจะรู้จักกับการเปลี่ยน String ให้เป็น Date หรือเปลี่ยน Date เป็น String เรามารู้จักกับรูปแบบต่างๆของวันที่กันก่อนดีกว่าครับ

รูปแบบ ISO 8601

รูปแบบ: “2019–07–14T10:00:00+0700" เป็นรูปแบบที่นิยมใช้มากๆในการส่งวันที่มารูปแบบนี้ผ่านการเรียก API ต่างๆ
- T ตรงกลางคือตัวคั่นระหว่างวันที่กับเวลา สิ่งที่ตามหลัง T จะเป็นเวลาเสมอ
- +0700 ก็คือ Time zone ซึ่ง +0700 คือ Bangkok นั่นเอง

รูปแบบอื่นๆ ที่เราสามารถกำหนดเอง

เราสามารถกำหนดสไตล์ได้เองตามใจชอบเลยแต่ Format จะต้องประกอบไปด้วยตัวอักษรที่อ้างอิงกับวันที่ ตัวอย่าง dd/MM/yyyy ตัวอย่างผลลัพท์ 07/14/2019
หรือ EE, MMMM-2019 ตัวอย่างผลลัพท์ Sun, July-2019
เราสามารถใส่สัญลักษณ์แบบไหนก็ได้ตามต้องการ ไม่ว่าจะเป็น , / : — หรือแม้แต่ Spacebar ก็ยังได้

รูปแบบตัวอักษรที่สามารถใช้ได้

Convert String to Date

หลังจากที่เราได้วันที่เป็น String มาจาก API แล้ว แปลงให้เป็น Date ก่อนเลยครับ

สังเกตที่ “yyyy-MM-dd’T’HH:mm:ssZ” ตรงนี้คือ iso 8601 Format
แล้วทำไมเราต้องแปลงให้เป็น Date ก่อน? นั่นก็เพราะว่าเราไม่สามารถที่จะแปลง iso String ที่เราได้มาไปเป็น String ตามรูปแบบที่เราต้องการได้เลยโดยตรง เราจำเป็นต้องทำให้เป็น Date ก่อน แล้วค่อยแปลงเป็น String อีกทีนึง

Convert Date to String

หลังจากที่เราได้ Date มาแล้ว ก็ทำการเปลี่ยน dateFormat ในแบบที่เราต้องการ และทำการแปลงจาก Date ไปเป็น String ก็เป็นอันเสร็จสิ้น

และนี่คือผลลัพท์ที่ได้

จบแล้วนะครับ สำหรับเรื่อง Date Format หวังว่าจะเป็นประโยชน์ หากมีข้อผิดพลาดประการใดต้องขออภัยด้วยนะครับ

--

--