ddbj / ddbj_validator

DDBJ Validation Rule/Validator/Module/API server
1 stars 0 forks source link

date の auto-correct を timezone 指定子を考慮したものに変更 #62

Closed komstat closed 5 years ago

komstat commented 6 years ago

collection_date で Z が無い time が記載されていた場合に Z を auto-correct で末尾に自動補完している。
例 2016-07-10T11:43 => 2016-07-10T11:43Z
https://github.com/ddbj/ddbj_validator/blob/master/src/conf/biosample/convert_date_format.json

しかし、Z のみを付加すると「timezone が UTC 標準時」という意味になり、時間の意味が変わってしまう恐れがある。
NCBI BioSample では timezone が指定されていない場合は T 以降の time を削除し、timezone が指定されている場合はそのままキープしている。

下記は ISO 8601 としては正しい記載だが error になった。

BS_R0007 を timezone を考慮した以下に変更する。

ISO 8601 timezone チェック正規表現については下記をご参考ください。
https://www.oreilly.com/library/view/regular-expressions-cookbook/9781449327453/ch04s07.html

上記を伝えるため warning message を変更。

Invalid date format.

Invalid date format. Follow ISO 8601 standard "YYYY-mm-dd", "YYYY-mm", "YYYY-mm-ddThh:mm:ss+hh:mm" or "YYYY-mm-ddThh:mm:ssZ+hh:mm" (eg., 1990-10-30, 1990-10, 1990-10-30T14:41:36+09:00 or 1990-10-30T14:41:36Z+09:00).

okbp commented 5 years ago

ISO 8601のtimezone表記を調べましたが、"Z"もしくは"+09:00"のいずれかを記載するフォーマットのようです。 ISO 8601 timezone

正規表現図

Zと時差が併記されていた場合は、"Z"を削除するのがISO準拠になると思いますが、NCBIに合わせた方が良いでしょうか?

komstat commented 5 years ago

Z を削除する ISO 準拠でお願いします

okbp commented 5 years ago

Validator 1.0.9としてリリース済み