Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
速水 康晴
 速水 康晴(はやみ やすはる)
 新潟県新潟市西区在住
 ウイングアーク1st株式会社 新潟オフィス
◦ プログラマ(アーキテクト):Java/Flex/ActionScript
 JGGUG(日本Grails/Groovyユーザーグ...
 GroovyのJSON処理で日付・時刻(Date)の扱い
2016-5-13 3
「13日の金曜日」
↓
ジェイソン
↓
JSON
↓
「JSON日の金曜日」
↓
13日の金曜日はJSONの日
2016-5-13 4
 「JSON日の金曜日」という勉強会は存在する!
◦ 新潟市で行われているJSON勉強会
◦ 本日も開催(懇親会だけ?)
◦ http://friday13json.connpass.com
2016-5-13 5
 JSONでは日付・時刻をそのまま扱えない
◦ 文字列として扱う
 JavaScript (ECMAScript)の日付・時刻(Date)
◦ RFC2822(RFC5322)
 Fri, 13 May 2016 10:00:00 GMT...
 日付・時刻(java.util.Date)はISO8601で出力
◦ フォーマット:yyyy-MM-dd'T'hh:mm:ssZ
 2016-05-13T10:00:00+0000
◦ タイムゾーンはGMT(+0000)固定
◦ ミリ秒は...
 typeの値によって異なる
◦ CHARACTER_SOURCE, CHAR_BUFFER:Stringのまま
◦ INDEX_OVERLAY, LAX:checkDatesの値で異なる
 true:変換可能な文字列であればjava.ut...
 変換可能な文字列(Ver.2.4.6)
◦ 2016-05-13T10:00:00Z
 タイムゾーンをZ(GMT)で指定した場合
◦ 2016-05-13T19:00:00+09:00
 タイムゾーンを±hh:mmで指定した場合
◦ 2...
 変換されるが正確な値とならない文字列(Ver.2.4.6)
◦ 2016-05-13T19:00:00+0900
 タイムゾーンを±hhmmで指定し、符号が+で値が0以外の場合
 →2016-05-13T19:00:00.090Z
 ...
 変換されない文字列(Ver.2.4.6)
◦ 2016-05-13T09:00:00-0100
 タイムゾーンを±hhmmで指定し、符号が-の場合
◦ 2016-05-13T10:00:00.000+00:00
 ミリ秒まで指定し、タイ...
Upcoming SlideShare
Loading in …5
×

GroovyのJSONで日付・時刻を扱う

2016-05-13に行われたJGGUGのG*ワークショップZのLTで発表した内容です。

  • Login to see the comments

  • Be the first to like this

GroovyのJSONで日付・時刻を扱う

  1. 1. 速水 康晴
  2. 2.  速水 康晴(はやみ やすはる)  新潟県新潟市西区在住  ウイングアーク1st株式会社 新潟オフィス ◦ プログラマ(アーキテクト):Java/Flex/ActionScript  JGGUG(日本Grails/Groovyユーザーグループ) ◦ サポート・スタッフ  E-mail:toby55kij@gmail.com  Twitter:toby55kij 22016-5-13
  3. 3.  GroovyのJSON処理で日付・時刻(Date)の扱い 2016-5-13 3
  4. 4. 「13日の金曜日」 ↓ ジェイソン ↓ JSON ↓ 「JSON日の金曜日」 ↓ 13日の金曜日はJSONの日 2016-5-13 4
  5. 5.  「JSON日の金曜日」という勉強会は存在する! ◦ 新潟市で行われているJSON勉強会 ◦ 本日も開催(懇親会だけ?) ◦ http://friday13json.connpass.com 2016-5-13 5
  6. 6.  JSONでは日付・時刻をそのまま扱えない ◦ 文字列として扱う  JavaScript (ECMAScript)の日付・時刻(Date) ◦ RFC2822(RFC5322)  Fri, 13 May 2016 10:00:00 GMT ◦ ECMAScript5からはISO8601も対応  2016-05-13T19:00:00+09:00  IEだと9から 2016-5-13 6
  7. 7.  日付・時刻(java.util.Date)はISO8601で出力 ◦ フォーマット:yyyy-MM-dd'T'hh:mm:ssZ  2016-05-13T10:00:00+0000 ◦ タイムゾーンはGMT(+0000)固定 ◦ ミリ秒は無視 2016-5-13 7
  8. 8.  typeの値によって異なる ◦ CHARACTER_SOURCE, CHAR_BUFFER:Stringのまま ◦ INDEX_OVERLAY, LAX:checkDatesの値で異なる  true:変換可能な文字列であればjava.util.Dateに変換  false:Stringのまま 2016-5-13 8
  9. 9.  変換可能な文字列(Ver.2.4.6) ◦ 2016-05-13T10:00:00Z  タイムゾーンをZ(GMT)で指定した場合 ◦ 2016-05-13T19:00:00+09:00  タイムゾーンを±hh:mmで指定した場合 ◦ 2016-05-13T10:00:00.000Z  ミリ秒まで指定し、タイムゾーンをZ(GMT)で指定した場合 ◦ 2016-05-13T10:00:00+0000 (Ver.2.4.4以降)  タイムゾーンを+0000(GMT)で指定した場合  JsonBuilder / JsonOutputの出力結果 2016-5-13 9
  10. 10.  変換されるが正確な値とならない文字列(Ver.2.4.6) ◦ 2016-05-13T19:00:00+0900  タイムゾーンを±hhmmで指定し、符号が+で値が0以外の場合  →2016-05-13T19:00:00.090Z  →2016-05-14T04:00:00+09:00 2016-5-13 10
  11. 11.  変換されない文字列(Ver.2.4.6) ◦ 2016-05-13T09:00:00-0100  タイムゾーンを±hhmmで指定し、符号が-の場合 ◦ 2016-05-13T10:00:00.000+00:00  ミリ秒まで指定し、タイムゾーンを±hh:mmで指定した場合 ◦ 2016-05-13T10:00:00.000+0000  ミリ秒まで指定し、タイムゾーンを±hhmmで指定した場合 2016-5-13 11

×