アプリケーション開発中に日付を 基本形式のISO8601@UTC で出力する必要があったのですが、
世の中の様々なライブラリのでISO8601出力をすると 拡張形式ISO8601 になってしまったので色々と苦労しました、
// Good(ISO8601 基本形式)
const dateStrOk = "20210801T100000Z"
// Bad(ISO8601 拡張形式)
const dateStrNg = "2021-08-01T10:00:00Z"
結論としては moment
と date-fns
を使って以下のように実装することができました。
プロジェクトの制約上 date-fns
の format
を使わないといけなかったのですが、
恐らく moment
の format
でも実装できると思います。(未検証)
import moment from "moment";
import format from "date-fns";
const ISO_8601_BASIC = "yyyyMMDDTHHmmss";
const dateStr = moment(new Date()).utc().format(ISO_8601_BASIC)
console.log(dateStr) //20210801T100000Z
rRuleのライブラリなどを使う際必要になるので、お困りの方の力に慣れれば幸いです。
もし、もっといい方法あるよ!という方いらっしゃったら是非教えて下さい。