floating timezone

時間帯のない日時

[14] 計算機システムでは、時間帯のない日時を扱うことがよくあり、 浮動時地方時などと呼ばれています。

[15] これは当該計算機の動作している地域で使われる時刻を表していることが多いですが、 文脈により決まるその他の地域の時刻を表していたり、 どこの時刻であるか不明であることを表していたりする場合もあります。

[16] 将来の日時の記述のために敢えて用いることもあります。

[27] 人間の読み書きする日時の表示は、 実のところほとんどが時差の記述のない時間帯のない日時です。 人間の読み書きも計算機の読み書きも、 多くの場合は文脈から時間帯を (意識的であれ無意識であれ) 補って解釈していることになります。

文脈

[28] 時間帯のない日時は、 次のような場面で用いられます。

時間帯のないことの明記

[43] 日時形式プログラミング言語ライブラリーなどでは、 時間帯のない日時をそうでない日時と区別するような構文の違いやデータ型の違い、 プロパティーによる区別が設けられていたりします。

[11] -00:00 も参照。 (floating time とは意味が異なりますが、 -0000floating time に相当するものに使われることもあります。)

[45] floating

[12] DateTime (.NET) には、地方時でも UTC でもないことを表す Unspecified という指定があります。

DateTimeKind Enumeration (System) () https://msdn.microsoft.com/en-us/library/shx7s921(v=vs.110).aspx

変換

[47] プログラミング言語ライブラリーなどにあっては、 時間帯のない日時データ型の値と時差の記述の組を時間帯情報のある日時に変換する手段が用意されていることがあります。

[48] 時間帯のない日時は、 暗黙裡に何らかの時間帯が仮定されて時間帯情報のある日時キャストされることがあります。 意図的に変換させる場合は構いませんが、 意図せず変換されてしまって不具合が生じることも多いです。

[49] 電子メールの日時形式で採用されている -0000 による記述は、 特別な対応をしていない実装が多いため、 +0000 すなわち UTC と同じように解釈されることが多いです。

[46] <input type=datetime-local>Date への変換では、 UTC とみなされた値になります。

[50] その他システム時間帯など「既定」の時間帯に属する日時と解釈されることも多いです。

浮動時

[1] Floating time zone support? | Communities ( ()) https://discussions.apple.com/thread/1080972?start=0&tstart=0

iCal has a handy feature where you can set the time zone of an event to "Floating". What this means is that the event is no longer tied to a specific time zone. So, let's say you want to schedule lunch at 12pm every day no matter where in the world you are, you set the time zone to floating, and that way you don't get an alert to have lunch at 4am if you're visiting another country.

[2] DateTime::TimeZone::Floating - search.cpan.org ( ()) http://search.cpan.org/dist/DateTime-TimeZone/lib/DateTime/TimeZone/Floating.pm

This class is used to provide the DateTime::TimeZone API needed by DateTime.pm, but for floating times, as defined by the RFC 2445 spec. A floating time has no time zone, and has an effective offset of zero.

[3] DateTime::TimeZone - search.cpan.org ( ()) http://search.cpan.org/dist/DateTime-TimeZone/lib/DateTime/TimeZone.pm#USAGE

If the "name" parameter is "floating", then a DateTime::TimeZone::Floating object is returned. A floating time zone does have any offset, and is always the same time. This is useful for calendaring applications, which may need to specify that a given event happens at the same local time, regardless of where it occurs. See RFC 2445 for more details.

[4] Working with Time Zones ( ()) https://www.w3.org/TR/timezone/#floating

Some observed time values are not related to a specific moment in incremental time. Instead, they need to be combined with local information to determine a range of acceptable incremental time values. We refer to these sorts of time values as "floating times" because they are not fixed to a specific incremental time value. Floating times are not attached and should never be attached to a particular time zone.

Some examples of floating time events include a user’s birth date, a document's publication date, a list of official holidays, or the expiration date for an offer (if not tied explicitly to a time zone).

Example 4:  

Suppose that your application delivers newspapers to users. Your application wants to show the publication date of each issue so that, for example, The Sunday News is always shown as being published on a Sunday. The publication date is thus a "floating time" value.

[5] Working with Time Zones ( ()) https://www.w3.org/TR/timezone/#guidelinessummary

When comparing times, floating times with no time zone information should use UTC as the time zone.

[6] RFC 5545 - Internet Calendaring and Scheduling Core Object Specification (iCalendar) ( ()) https://tools.ietf.org/html/rfc5545#section-3.3.5

FORM #1: DATE WITH LOCAL TIME

The date with local time form is simply a DATE-TIME value that

does not contain the UTC designator nor does it reference a time

zone. For example, the following represents January 18, 1998, at

11 PM:

19980118T230000

DATE-TIME values of this type are said to be "floating" and are

not bound to any time zone in particular. They are used to

represent the same hour, minute, and second value regardless of

which time zone is currently being observed. For example, an

event can be defined that indicates that an individual will be

busy from 11:00 AM to 1:00 PM every day, no matter which time zone

the person is in. In these cases, a local time can be specified.

The recipient of an iCalendar object with a property value

consisting of a local time, without any relative time zone

information, SHOULD interpret the value as being fixed to whatever

time zone the "ATTENDEE" is in at any given moment. This means

that two "Attendees", in different time zones, receiving the same

event definition as a floating time, may be participating in the

event at different actual times. Floating time SHOULD only be

used where that is the reasonable behavior.

In most cases, a fixed time is desired. To properly communicate a

fixed time in a property value, either UTC time or local time with

time zone reference MUST be specified.

The use of local time in a DATE-TIME value without the "TZID"

property parameter is to be interpreted as floating time,

regardless of the existence of "VTIMEZONE" calendar components in

the iCalendar object.

[8] [perl]DateTimeのtimezoneについてのメモ - $shibayu36->blog; ( ()) http://blog.shibayu36.org/entry/20111002/1317542196

[18] houseabsolute/DateTime.pm: A date and time object for Perl () https://github.com/houseabsolute/DateTime.pm#floating-datetimes

地方時

[44] 「地方時」や「local time」 にはいろいろな意味がありますが、 時間帯のない日時を意味していることがあります。 地方時

[9] time - The Go Programming Language () https://golang.org/pkg/time/#Location

Local

[10] T2EX () http://www.tron.org/ja/wp-content/themes/dp-magjam/pdf/specifications/ja/TEF020-S009-02.00.00_ja.pdf#page=107

ローカル時刻

[7] <input type=datetime-local> が扱うのも浮動時です。

[51] TOMLの日時形式: Local Date-Time

[53] FIPAの日時形式 (local time zone)

[54] Floating Timestamp Datatype | Socrata, https://dev.socrata.com/docs/datatypes/floating_timestamp.html#,

概念時刻

[24] 概念時刻なる語を使う人達がいます。 通用範囲は極めて限られていて、 現時点で見つかったものは次のものだけでした。

[21] .Net FrameworkのDateTime型 - C Sharpens you up, Sampo, 2014-02-13 () http://cs.hatenablog.jp/entry/2014/02/13/180213

絶対時刻であるUtc, Localと概念時刻であるUnspecifiedを同じクラスで扱おうとしたあたりが闇の起源くさいですね。

>>19 と同じ著者
[19] timestamp with time zone型はタイムゾーン情報を持っていない - Qiita, @yuba, 2014年11月18日に投稿 () https://qiita.com/yuba/items/7852a29d63d6279c6f6e

2015年1月1日00:00:00 という時刻表記は、地球上のどこで読んだかによって意味が変わってしまいます。このような時刻のことを 概念時刻 と呼ぶことにしましょう。ボジョレー・ヌーボーの解禁時刻、11月第3木曜日00:00:00も概念時刻だからこそ世界各地で解禁時刻が違い、バブル期は日本が世界で最初に解禁されるって盛り上がったものです。

[20] MessagePackフォーマット仕様にTimestamp型を追加 - Blog by Sadayuki Furuhashi, frsyuki, 2017-08-10 () http://frsyuki.hatenablog.com/entry/2017/08/10/144310

概念時刻は、世界のどこのタイムゾーンで扱うかによって別の瞬間を示します。例えば 2017-08-09 18:25:00 は、どのタイムゾーンで解釈するかによって実際の時刻が変わるため、概念時刻です。概念時刻は、理論上は暦(calendar system)に依存していくつかの表現方法がありますが、普通はグレゴリオ暦(西暦)を使います。

>>19 を参照。

[26] >>20 では対応する英語が「Local Time」とされています。

[25] MessagePack という一部で人気のデータ形式仕様の作者による解説 >>20 で使われているので、 それなりに影響力があるのかも・・・と思いきや用例は数えるほどで特に普及してもいないようです。 説明無しではまず通用しないと思われます。 意味もわかりにくいので (「概念」とは何を指しているのか不明、 英語「local time」と対応関係にない、 対語「絶対時刻」と対応関係にない)、 使うべきではない用語だと思います。

関連

[52] 時刻以外の不確定要素入り日時floating date も参照。

メモ

[13] RFC 4791 - Calendaring Extensions to WebDAV (CalDAV) () https://tools.ietf.org/html/rfc4791#section-7.3

[17] [tz] DST ends 2040 in Oracle database () https://mm.icann.org/pipermail/tz/2019-January/027453.html