[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 ด้วย รูปแบบก็เหมือนกันเลยครับ
เวลาจึงจะออกมาให้เรา... ลองไปลองกันดูนะครับผม ^^
ขอจบบทความเพียงเท่านี้ครับ ^^
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 ด้วย รูปแบบก็เหมือนกันเลยครับ
เวลาจึงจะออกมาให้เรา... ลองไปลองกันดูนะครับผม ^^
ขอจบบทความเพียงเท่านี้ครับ ^^
Comments
Post a Comment