[iOS Dev] Date To String in Objective-C

วันนี้วันที่เท่าไรไม่รู้ แต่เราจะมาเล่นกับ วันที่กัน ^^
Object เกี่ยวกับ วัน/เวลา มันคือ NSDate

ตัวแปรชนิดนี้ ถึงแม้เราอาจจะคิดว่ามันเป็น String ก็ตาม แต่เราไม่สามารถที่จะ พิมพ์มันออกมาได้โดยตรง
ขั้นแรกมาดูกันก่อน ว่าเราจะสามารถนำวันที่ออกมาได้อย่างไร ^^

โดยใช้


ในที่นี้ทำการเรียกใช้ Message Date ซึ่งคุณสมบัติของมันคือ
"ให้ค่า วันที่และเวลา ณ ปัจจุบันกลับมา"

** ยังมี Message อีกมากมายเกี่ยวกับ วันและเวลา ในที่นี้คงไม่แนะนำอะไร
     แนะนำว่าให้ Highlight คำว่า NSDate --> คลิกขวา --> Find in Document

เมื่อเราได้เวลามาแล้ว แต่เราได้มาในรูปแบบของ NSDate Object ซึ่ง Object ชนิดนี้
ไม่สามารถที่จะแสดงบน Shell ด้วย NSLog  หรือใช้ทาง Application นั่นคือ ไม่สามารถวางบน
Label หรือ วัตถุอื่น ๆ ได้โดยตรง...

เราต้องทำการเปลี่ยนจาก NSDate ให้เป็น NSString (ข้อความ) ก่อน จึงจะสามารถนำไปใช้ต่อได้
ซึ่งมีหลายวิธีด้วยกัน ^^

วิธีแรก


วิธีนี้เป็นการเรียกใช้ Message "description"
คุณสมบัติคือ "แปลง NSDate ให้เป็น NSString" ซึ่งเมื่อ Log ออกมาดูจะได้


รูปแบบของมันก็คือ yy-mm-dd  hr:m:sec gmt
แน่นอนข้อด้อยของ "description" คือ เราไม่สามารถกำหนดรูปแบบของ วัน/เวลา ที่เราต้องการแสดงได้

แต่เราสามารถทำได้โดยใช้ NSDateFormatter ตามนี้ ^^


เริ่มแรกเราต้องสร้าง NSDateFormatter ขึ้นมาก่อน...
จากนั้นบรรทัดที่ 2 เป็นการ setDateStyle ให้วัน/เวลา เราว่าจะให้ออกมาในรูปแบบไหน...
ซึ่งในตัวอย่าง ยกมาแค่ 3 แบบให้ดูจริง ๆ แล้วมันยังมีอีก แต่เอามาแค่นี้พอ...

เมื่อ setStyle เสร็จแล้ว ขั้นตอนต่อก็คือ แปลง NSDate ให้เป็น NSString ออกที่จะแสดงออกทาง Shell
โดยเรียกใช้ Message "stringFromDate" ของ NSDateFormatter ตามบรรทัดที่ 3
แล้วก็ Log ออกมาดูจะได้ดังภาพ ^^


ตามลำดับนะ

Line 1 :: shortStyle
Line 2 :: mediumStyle
Line 3 :: fullStyle

รูปแบบนี้สวยกว่าเยอะเลยเนาะ อิอิ ^^

** โอ้ว ผิดพลาดนิดหน่อยครับ จากบทความนี้ เวลาไม่ยอมออกมาใช่มั้ยครับ
     นอกจาก setDateStyle แล้ว ยังต้องเขียนอีก 1 บรรทัด แบบเดียวกันเลยครับ
     แต่มี setTimeStyle ด้วย รูปแบบก็เหมือนกันเลยครับ
     เวลาจึงจะออกมาให้เรา... ลองไปลองกันดูนะครับผม ^^

ขอจบบทความเพียงเท่านี้ครับ ^^

Popular posts from this blog

12 วิธี การบริการและดูแลลูกค้าในร้าน Starbucks

[Android Dev] การติดตั้ง Eclipse+AndroidSDK เพื่อพัฒนาโปรแกรมบน Android

5 TED Talk ที่จะช่วยให้คุณทำงานดีขึ้น