2016-10-22 8 views
4

Podio APIを使用して新しいアイテムを作成または既存のアイテムを更新し、DateTimeフィールドの値を2016-10-21 14:15:00(例)に設定しているとき。このDateTimeの保存に使用するタイムゾーンはどれですか?Podio:DateTimeフィールドの値を設定するときに使用するTimeZone

など。 要求

app_id = <some app with title and date fields> 
content = {'title' => 'Date set to "14:15"', 
      'date' => {'start' => '2016-10-21 14:15:00', 
         'end' => '2016-10-21 15:00:00'}} 
item = Podio::Item.create(app_id, 'fields' => content) 

結果

私は 14:15を設定したのと同じ時間値 14:15を見ているが、どのように私は制御し、特定の設定することができますので、素晴らしいです
'start_date_utc' => 2016-10-21 
'end'   => 2016-10-21 15:00:00 
'end_date'  => 2016-10-21 
'end_date_utc' => 2016-10-21 
'start_time_utc' => 12:15:00 
'start_time'  => 14:15:00 
'start_date'  => 2016-10-21 
'start'   => 2016-10-21 14:15:00 
'end_time'  => 15:00:00 
'end_time_utc' => 13:00:00 
'end_utc'  => 2016-10-21 13:00:00 
'start_utc'  => 2016-10-21 12:15:00 

timezoneこのDateTimeフィールドには?

答えて

6

Podio APIはかなりスマートで、私のタイムゾーンを認識しているようです。

リクエストと結果の例がいくつかあります。 DateTimeフィールドを14:15:00に設定すると、別のユーザーとアプリとして認証されます。

content = {'date' => {'start' => '2016-10-21 14:15:00'}} 
Podio.client.authenticate_with_credentials(<user A>, <pass>) 
item_created_by_userA = Podio::Item.create(app_id, 'fields' => content) 

Podio.client.authenticate_with_credentials(<user B>, <pass>) 
item_created_by_userB = Podio::Item.create(app_id, 'fields' => content) 

Podio.client.authenticate_with_app(<app ID>, <app token>) 
item_created_by_app = Podio::Item.create(app_id, 'fields' => content) 

そしてセットがされている値:ユーザーAのタイムゾーンをUTC + 02に設定され、同じ値をので2016-10-21 14:15:00 -0700としてAPIによって扱われるので、値2016-10-21 14:15:002016-10-21 14:15:00 +0200としてAPIによって処理され

item_created_by_userA: 
'start'  => 2016-10-21 14:15:00 
'start_utc' => 2016-10-21 12:15:00 

item_created_by_userB: 
'start'  => 2016-10-21 14:15:00 
'start_utc' => 2016-10-21 21:15:00 

item_created_by_app: 
'start'  => 2016-10-21 14:15:00 
'start_utc' => 2016-10-21 14:15:00 

そしてuserBタイムゾーンはUTC-07(アカウント設定のPodio内)です。アプリとして認証された場合は、その後、私は値2016-10-21 14:15:00 +0800を設定したい場合は、タイムゾーンは、だから、UTC

であると仮定し、私は自分自身にそれを最初に変換する必要があります、(のは、私はクアラルンプールのタイムゾーンを設定するふりをしましょう)タイムゾーン(Podioアカウントの設定で設定されているもの)を入力し、Podio APIに次のように送信します。

date_as_str = "2016-10-22 14:15:00 +08:00" # trying to set value with UTC+08 
date_with_tz = DateTime.parse(date_as_str).in_time_zone("Europe/Copenhagen") # when Copenhagen is userA's timezone 
date_to_send = date_with_tz.strftime('%Y-%m-%d %H:%M:%S') 
content = {'date' => {'start' => date_to_send}} 
Podio.client.authenticate_with_credentials(<user A>, <pass>) 
item_created_by_userA = Podio::Item.create(app_id, 'fields' => content) 
関連する問題