วันอังคารที่ 17 ธันวาคม พ.ศ. 2556

เผชิญหน้ากับ ISO8601

วันนี้เจอโจทย์ใหม่ จากต้อง parse XML แล้วเอา XML ใส่เข้า Oracle แต่พบว่าใน XML transaction, DateTime ที่ส่งมาเป็น format ISO8601 ถ้าเป็นเจ้าอื่นคงไม่มีปัญหาหรอก แต่นี่ Erlang!!!

ทำยังไงล่ะ....

ค้นเจอมีคนทำ iso8601 สำหรับ Erlang ไว้ที่ github เลยเพิ่ม dependencies ของ iso8601 ใน rebar.config

{'iso8601', ".*", {git, "https://github.com/seansawyer/erlang_iso8601.git", {tag, "1.1.1"}}}

จากนั้น

$ rebar compile

เรียบร้อยเรียกใช้ iso8601 ได้แล้ว 
วิธีใช้ก็ง่ายมาก

1>iso8601:parse(<<"2013-09-26T11:46:14.0003863+07:00">>).
{{2013,9,26},{4,46,14}}

ทีนี้ก็ใช้ oci utilities convert ให้เป็น oracle date

1> DateTime = iso8601:parse(<<"2013-09-26T11:46:14.0003863+07:00">>).
{{2013,9,26},{4,46,14}}
2>oci_util:edatetime_to_ora(DateTime).
<<120,113,9,26,4,46,14>>

Rebar นี่ช่วยได้เยอะจริงๆ

Erlangian is erlanging.

ไม่มีความคิดเห็น:

แสดงความคิดเห็น