skimemo


skimemo - 日記/2013-08-31/JSONの日付時刻のフォーマットを指定する

_ JSONの日付時刻のフォーマットを指定する

Google appstateを使ってデータを格納するには、情報をJSON形式にするのが便利です。ところがこのJSON、オブジェクトを勝手に文字列にしてくれるのは良いのですが、日付のフォーマットがライブラリ毎(環境毎?)に違っており、異なるプラットフォームでのデータ互換性には注意が必要です。

例えば、Android、Javaでgsonを使ってSerializeすると、

Aug, 31 8 2013 22:59:31

のような形式になります。

一方で、C#のNewtonsoft.Jsonで日付をSerializeすると、

2013-08-31T22:59:31.123456+09:00

のような形式になります。これはgsonでは読めません。

そこで形式を統一する必要があります。
具体的にはこんな風にします。
Java側:

Everything is expanded.Everything is shortened.
  1
  2
 
 
Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
String json = gson.toJson(data);


C#側:

Everything is expanded.Everything is shortened.
  1
 
string json = JsonConvert.SerializeObject(data, new IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" });

これで、どちらも「2013-08-31 22:59:31」で読み書きしてくれます。

Category: [CSharp][android] - 23:05:55


 
Last-modified: 2014-04-07 (月) 20:43:45 (2311d)