LoginSignup
9
7

More than 5 years have passed since last update.

日付のフォーマット(ISO8601)

Last updated at Posted at 2018-07-10

概要

APIで日付を返すときのフォーマットについて調べたところISO8601がヒットしたので、調べてみた結果をメモしておく。

PostgreSQL

PostgreSQLで日付を生成してみる。

SELECT to_char('2018-07-10 09:00:00'::timestamp, 'YYYY-MM-DD"T"HH24:MI:SS"Z"');  -- "2018-07-10T09:00:00Z"

SELECT to_char(NOW() at time zone 'UTC', 'YYYY-MM-DD"T"HH24:MI:SS"Z"'); -- "2018-07-10T09:07:10Z"

MySQL

SELECT DATE_FORMAT(CONVERT_TZ('2017-07-10 18:00:00', 'Asia/Tokyo', 'UTC'), "%Y-%m-%dT%TZ"); -- "2017-07-10T09:00:00Z"

SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(CONVERT_TZ('2017-07-10 18:00:00', 'Asia/Tokyo', 'UTC'))); -- "2017-07-10 09:00:00"

PHP

PHPだとこうかな?

$date = new \DateTime("2018-07-10 18:00:00", new \DateTimeZone('Asia/Tokyo'));
$date->setTimezone( new \DateTimeZone('UTC'));
$iso8601 = $date->format('Y-m-d\TH:i:s') . 'Z';
var_dump($iso8601);     # string(20) "2018-07-10T09:00:00Z"

参考サイト

9
7
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7