英語版
このページの英語版を見る

std.datetime.timezone

abstract class TimeZone;
タイムゾーンを表す。これは std.datetime.systime.SysTime のタイムゾーンを示すために std.datetime.systime.SysTime.
const nothrow @property @safe string name();
タイムゾーンの名前。タイムゾーン名がどのようにフォーマットされるかは は派生クラスによって異なる。の場合は PosixTimeZoneの場合は の場合はTZデータベース名である。 WindowsTimeZoneの場合は の場合は、Windowsがそのタイムゾーンのレジストリ・キーにつけた名前である。 (一般的には stdTimeOSが英語の場合 通常、OSが英語の場合に付けられる名前)。他のタイムゾーンの場合、それが何であるかは、それらがどのように実装されているかによる。 による。
const nothrow @property scope @safe string stdName();
通常、夏時間が適用されていない場合のタイムゾーンの略称(一般に3文字または4文字)である。 の略称(通常3~4文字)である。必ずしも一意ではない。
ただし、Windowsでは、省略されていない名前になることもある(例:Pacific 標準時など)。いずれにせよ、nameとは異なる。
const nothrow @property scope @safe string dstName();
一般的には、夏時間が適用されているときのタイムゾーンの略称(一般に3文字または4文字)である。 の略称(一般に3文字または4文字)である。必ずしも一意ではない。
ただし、Windowsでは、省略されていない名前になることもある(例:Pacific Daylight Timeなど)。いずれにせよ、名前とは異なる。
abstract const nothrow @property @safe bool hasDST();
このタイムゾーンに夏時間があるかどうか。 タイムゾーンの型によっては、現在の日付が夏時間でない場合もあることに注意。 には真を返す。 hasDSTを返す。 の場合は真を返す。
abstract const nothrow scope @safe bool dstInEffect(long stdTime);
西暦1月1日午前0時からのhnsecs(100ナノ秒)の数を取る。 UTC時間(つまり標準時)で、このタイムゾーンで夏時間が適用されているかどうかを返す。 で夏時間が適用されているかどうかを返す。
Parameters:
long stdTime このタイムゾーンで夏時間が適用されているかどうかを確認する必要があるのは、UTC時間である。 ゾーンを指定する。
abstract const nothrow scope @safe long utcToTZ(long stdTime);
西暦1年1月1日午前0時からのhn秒数(100ns)をUTC時間(標準時)で取得し、このタイムゾーンの時刻に変換する。 UTC時間(標準時)で、このタイムゾーンの時間に変換する。
Parameters:
long stdTime UTC時間をこのタイムゾーンの時間に合わせる必要がある。 の時刻に合わせる必要がある。
abstract const nothrow scope @safe long tzToUTC(long adjTime);
西暦1年1月1日午前0時からのhnsecs(100ns)数をこのタイムゾーンの時刻に変換する。 このタイムゾーンの時刻をUTC(標準時)に変換する。
Parameters:
long adjTime このタイムゾーンの時刻をUTCに合わせる必要がある。 UTC時間。
const nothrow scope @safe Duration utcOffsetAt(long stdTime);
与えられた標準時におけるUTCからのオフセットを返す。 このオフセットには、その時点で有効な夏時間オフセットも含まれる(もしあれば)。
Parameters:
long stdTime このタイムゾーンのUTCからのオフセットを取得するUTC時刻。 タイムゾーン。
protected immutable pure @safe this(string name, string stdName, string dstName);
Parameters:
string name タイムゾーンの名前。
string stdName 標準時におけるタイムゾーンの略称。
string dstName 夏時間中のタイムゾーンの略称。
class LocalTime: std.datetime.timezone.TimeZone;
現在のローカル・タイム・ゾーンを表すTimeZone。 現在のローカル・タイム・ゾーンを表す。
これは、システム設定に基づく特定のDコードを使用するのではなく、基本的なCコールを使用して時刻を調整する。 のようなシステム設定に基づく特定のDコードを使用して時間を計算するのではなく、基本的なCコールを使用して時間を調整する。 PosixTimeZoneそして WindowsTimeZoneのようなシステム設定に基づく特定のDコードを使用して時間を計算するのではなく、基礎となるCコールを使用する。つまり これはまた、たとえプログラム実行中にシステムのタイムゾーンが変わったとしても、システムの現在のタイムゾーンを使用するということでもある。 を使うということでもある。
static pure nothrow @trusted immutable(LocalTime) opCall();
LocalTimeはシングルトン・クラスである。 LocalTimeはその インスタンスを返す。
const nothrow @property @safe string name();
原則として、これはローカル・タイムゾーンの名前である。しかし は常に空文字列を返す。これは、タイムゾーン の属性では一意に識別できないからである。 OSが与える属性(stdNamedstName など)ではタイムゾーンを一意に特定できないからである。 もWindowsシステムも、ローカルタイムゾーンのTZデータベース名を取得する簡単な方法を提供していないからである。 を取得する簡単な方法を提供していないからである。
const nothrow @property scope @trusted string stdName();
通常、夏時間が適用されていない場合のタイムゾーンの略称(一般に3文字または4文字)である。 の略称(通常3~4文字)である。必ずしも一意ではない。
ただし、Windowsでは、省略されていない名前になることもある(例:Pacific 標準時など)。いずれにせよ、nameとは異なる。
このプロパティがオーバーライドされるのは、システムのローカル時間がプログラム実行中に変更される可能性があるためである。 このプロパティがオーバーライドされるのは、プログラムの実行中にシステムのローカル時間が変更される可能性があり、それを動的に決定する必要があるからだ。 このプロパティがオーバーライドされるのは、プログラムの実行中にシステムのローカル時間が変更される可能性があるからだ。 のように固定されているのではなく、動的に決定する必要があるためである。
const nothrow @property scope @trusted string dstName();
通常、タイムゾーンの略語(一般に3文字か4文字)は、サマータイムが適用されているときに の略称(一般的には3文字か4文字)である。必ずしも一意ではない。
ただし、Windowsでは、省略されていない名前(例:Pacific Daylight Timeなど)。いずれにせよ、nameとは異なる。
このプロパティがオーバーライドされるのは、システムのローカル時間がプログラム実行中に変更される可能性があるためである。 このプロパティがオーバーライドされるのは、プログラムの実行中にシステムのローカル時間が変更される可能性があるからだ。 このプロパティがオーバーライドされるのは、プログラムの実行中にシステムのローカル時間が変更される可能性があるからだ。 である。
const nothrow @property @trusted bool hasDST();
このタイムゾーンに夏時間があるかどうか。 タイムゾーンの型によっては、現在の日付ではサマータイムが適用されないが の場合は真を返す。 hasDSTの場合は真を返す。 の場合は真を返す。
const nothrow scope @trusted bool dstInEffect(long stdTime);
西暦1月1日午前0時からのhnsecs(100ナノ秒)の数を取る。 UTC時間(標準時)で、このタイムゾーンで夏時間が適用されているかどうかを返す。 で夏時間が適用されているかどうかを返す。
Parameters:
long stdTime このタイムゾーンで夏時間が適用されているかどうかを確認する必要があるUTC時刻は以下のとおりである。 ゾーンを表す。
const nothrow scope @trusted long utcToTZ(long stdTime);
Posixシステムでは標準C関数コールを、Windowsでは標準Windowsシステムコールを使用して、ローカルタイムゾーンにおけるhnsecsを返す。 Posixシステムでは標準のC関数コールを、Windowsシステムでは標準のWindowsシステムコールを使用して、ローカルタイムゾーンのhnsecsを返す。 システムでは標準時間から適切なタイムゾーンに時間を調整するための標準Windowsシステムコールを使用する。
Parameters:
long stdTime このタイムゾーンの時刻に合わせる必要があるUTC時刻を返す。 時間である。
See Also:
TimeZone.utcToTZ
const nothrow scope @trusted long tzToUTC(long adjTime);
Posixシステムでは標準C関数コールを使って標準時を返し、Windowsシステムでは標準Windowsシステムコールを使って標準時を返す。 を、Windowsシステムでは標準Windowsシステムコールを使用して、適切なタイムゾーンからUTCに時間を調整する 標準時刻を返す。
See Also:
TimeZone.tzToUTC
Parameters:
long adjTime このタイムゾーンの時刻を UTC時間である。
class UTC: std.datetime.timezone.TimeZone;
A TimeZoneはUTCを表す。
static pure nothrow @safe immutable(UTC) opCall();
UTC UTC はその唯一のインスタンスを返す。
const nothrow @property @safe bool hasDST();
常に偽を返す。
const nothrow scope @safe bool dstInEffect(long stdTime);
常に偽を返す。
const nothrow scope @safe long utcToTZ(long stdTime);
与えられたhnsecsを全く変更せずに返す。
Parameters:
long stdTime このタイムゾーンの時刻に合わせる必要があるUTC時刻を返す。 時間に合わせる必要がある。
See Also:
TimeZone.utcToTZ
const nothrow scope @safe long tzToUTC(long adjTime);
指定されたhnsecsを変更せずに返す。
See Also:
TimeZone.tzToUTC
Parameters:
long adjTime このタイムゾーンの時刻を UTC時間に合わせる必要がある。
const nothrow scope @safe Duration utcOffsetAt(long stdTime);
0を返す。 core.time.Duration0 を返す。
Parameters:
long stdTime このタイムゾーンのUTCからのオフセットを取得するUTC時刻。 タイムゾーン。
class SimpleTimeZone: std.datetime.timezone.TimeZone;
UTCからのオフセット(分単位、西は負)を持つタイムゾーンを表す。 UTCからのオフセット(分単位、西はマイナス)を持つタイムゾーンを表す。
これは主に std.datetime.systime.SysTimefromISOStringfromISOExtString およびfromSimpleString
namedstName は常に空文字列である。 このタイムゾーンには夏時間がない。 このタイムゾーンには夏時間がないため、TZデータベースに登録されているタイムゾーンを表すことを意図しているのかもしれないが、明らかにTZデータベースに登録されているタイムゾーンの正確なルールに従っている可能性は低い。 このタイムゾーンには夏時間がないため、常に空文字列となる。
const nothrow @property @safe bool hasDST();
常に偽を返す。
const nothrow scope @safe bool dstInEffect(long stdTime);
常に偽を返す。
const nothrow scope @safe long utcToTZ(long stdTime);
西暦1年1月1日午前0時からのhn秒数(100ns)を取る。 UTC時間(標準時)で、このタイムゾーンの時間に変換する。
Parameters:
long stdTime UTC時間をこのタイムゾーンの時間に合わせる必要がある の時刻に合わせる必要がある。
const nothrow scope @safe long tzToUTC(long adjTime);
西暦1年1月1日午前0時からのhnsecs(100ns)をこのタイムゾーンの時刻に変換する。 このタイムゾーンの時刻をUTC(標準時)に変換する。
Parameters:
long adjTime このタイムゾーンの時刻をUTCに合わせる必要がある。 UTC時間に調整する必要がある。
const nothrow scope @safe Duration utcOffsetAt(long stdTime);
utcOffsetを core.time.Duration.
Parameters:
long stdTime このタイムゾーンのUTCからのオフセットを取得するUTC時刻。 を返す。
immutable pure @safe this(Duration utcOffset, string stdName = "");
Parameters:
Duration utcOffset このタイムゾーンのUTCからのオフセット。 負の値である(調整後の時刻を得るためにUTCに加算される)。
string stdName このタイムゾーンの stdNameこのタイムゾーンの
const pure nothrow @property @safe Duration utcOffset();
UTCからのオフセットの時間量(負はUTCの西、 正は東)。
class PosixTimeZone: std.datetime.timezone.TimeZone;
TZデータベースタイムゾーンファイルからのタイムゾーンを表す。TZデータベースからのファイルは データベースからのファイルは、Posixシステムがタイムゾーン情報を保持する方法である。 残念ながら、WindowsはTZデータベースを使用しない。TZデータベースを使うには を使う PosixTimeZone(ディスク上のTZデータベース ディスク上のTZ Databaseファイルから情報を読み取る)を使用する。 PosixTimeZone.getTimeZoneを使用する。
を取得するには PosixTimeZoneを取得するには PosixTimeZone.getTimeZone (を呼び出す(タイムゾーンファイルの場所を指定できる)。

注釈 あなたのシステムのローカルタイムゾーンがうるう秒を扱っているのでない限り(その可能性は極めて低い。 うるう秒を考慮したタイムゾーンを取得する唯一の方法である。 がうるう秒を考慮したタイムゾーンを取得する唯一の方法は PosixTimeZoneを使うことである。 right/"で始まるタイムゾーンを使うことである。これらのタイムゾーンファイルには にうるう秒が含まれており PosixTimeZoneはうるう秒を考慮する (ただし、"right/"タイムゾーンをローカルタイムゾーンとして使用しているposixシステムでは、閏秒が考慮されない。 をローカルタイムゾーンとして使用しているposixシステムでは、うるう秒がファイルに含まれていても考慮されない)。 であっても、うるう秒は考慮されない)。

const nothrow @property @safe bool hasDST();
このタイムゾーンに夏時間があるかどうか。 タイムゾーンの型によっては、現在の日付ではサマータイムが適用されないが の場合は真を返す。 hasDSTの場合は真を返す。 の場合は真を返す。
const nothrow scope @safe bool dstInEffect(long stdTime);
西暦1月1日午前0時からのhnsecs(100ナノ秒)の数を取る。 UTC時間(標準時)で、このタイムゾーンで夏時間が適用されているかどうかを返す。 で夏時間が適用されているかどうかを返す。
Parameters:
long stdTime このタイムゾーンで夏時間が適用されているかどうかを確認する必要があるUTC時刻は以下のとおりである。 ゾーンを表す。
const nothrow scope @safe long utcToTZ(long stdTime);
西暦1年1月1日午前0時からのhn秒数(100ns)をUTC時間(標準時)で取得し、このタイムゾーンの時刻に変換する。 UTC時間(標準時)で、このタイムゾーンの時間に変換する。
Parameters:
long stdTime UTC時間をこのタイムゾーンの時間に合わせる必要がある。 の時刻に合わせる必要がある。
const nothrow scope @safe long tzToUTC(long adjTime);
西暦1年1月1日午前0時からのhnsecs(100ns)をこのタイムゾーンの時刻に変換する。 このタイムゾーンの時刻をUTC(標準時)に変換する。
Parameters:
long adjTime このタイムゾーンの時刻をUTCに合わせる必要がある。 UTC時間。
enum string defaultTZDatabaseDir;
TZデータベースのファイルが保存されているデフォルトのディレクトリ。これは Windowsにはないので、Windowsの場合は空である。また TZDatabaseDirバージョンを使用して、コンパイル時に任意のパスを渡すこともできる、 を使うこともできる。Androidはすべてのタイムゾーン・データを Androidはすべてのタイムゾーン・データをtzdataという1つのファイルに連結し、以下のディレクトリに格納する。 に格納する。
static @trusted immutable(PosixTimeZone) getTimeZone(string name, string tzDatabaseDir = defaultTZDatabaseDir);
以下のディレクトリに格納する。 TimeZoneを返す。タイムゾーン情報は のタイムゾーンファイルから取得される。 から取得される。
Parameters:
string name 希望するタイムゾーンのTZデータベース名
string tzDatabaseDir TZデータベースのファイルがあるディレクトリ があるディレクトリ。これらのファイルは Windowsシステムにはないため、"@system"を指定する。 を指定する。 使用する PosixTimeZones.
Throws:
std.datetime.date.DateTimeExceptionを使用する。 が見つからないか、FileException 。 を開けなかった。
Examples:
version (Posix)
{
    auto tz = PosixTimeZone.getTimeZone("America/Los_Angeles");

    writeln(tz.name); // "America/Los_Angeles"
    writeln(tz.stdName); // "PST"
    writeln(tz.dstName); // "PDT"
}
static @safe string[] getInstalledTZNames(string subName = "", string tzDatabaseDir = defaultTZDatabaseDir);
システムにインストールされているタイムゾーンの名前のリストを返す。
サブネームを指定すると、タイムゾーンのリストを絞り込むことができる。 を絞り込むことができる。)例:"America"をサブネームとして渡す、 を渡すと、"America"で始まるタイムゾーンだけが返される。 America "で始まるタイムゾーンのみを返す。
Parameters:
string subName 希望するタイムゾーンの最初の部分。
string tzDatabaseDir TZデータベースのファイルがあるディレクトリ があるディレクトリ。
Throws:
FileException ディスクからの読み込みに失敗した場合。
class WindowsTimeZone: std.datetime.timezone.TimeZone;
このクラスはWindows専用である。
Windowsレジストリからのタイムゾーンを表す。残念ながら はTZデータベースを使用しない。TZデータベースを使うには PosixTimeZoneを使用する(ディスク上のTZデータベース ディスク上のTZ Databaseファイルから情報を読み取る)を使用する。 PosixTimeZone.getTimeZone を使用する。
TZデータベースファイルとWindowsのタイムゾーン情報はしばしば一致しない。 が一致しない。夏時間がいつ切り替わるかに関して、Windowsに多くのエラーがある。 (特に過去の日付)に関して多くのエラーがある。また、TZデータベースファイル にはWindowsよりもはるかに多くのタイムゾーンが含まれている。そのため、正確な TZデータベースファイルを使用する。 PosixTimeZoneではなく WindowsTimeZone.ただし WindowsTimeZoneはWindowsシステムコールを使って時間を処理する、 の方が、他のWindowsプログラムの動作と一致する可能性が高い。 メソッドを選択する際には、この違いに注意すること。
WindowsTimeZoneはPosixシステムには存在しない。
を取得するには WindowsTimeZoneを得るには WindowsTimeZone.getTimeZone.
const nothrow @property scope @safe bool hasDST();
このタイムゾーンに夏時間があるかどうか。 を指定する。タイムゾーンの型によっては、現在の日付ではサマータイムが適用されないが には真を返す。 hasDSTなぜなら を返す。
const nothrow scope @safe bool dstInEffect(long stdTime);
1月1日午前0時からのhnsecs(100ns)の数を取る、 1 A.D.のUTC時間(つまり標準時)でのhnsec数(100 ns)を取り、指定されたタイムゾーンでサマータイムが適用されているかどうかを返す。 であるかどうかを返す。
Parameters:
long stdTime このタイムゾーンで夏時間が適用されているかどうかを確認する必要があるUTC時刻は、次のとおりである。 を返す。
const nothrow scope @safe long utcToTZ(long stdTime);
西暦1月1日午前0時からのhnsecs(100ns)数をUTC時間(標準時)に変換する、 1 A.D.のUTC時間(つまり標準時)を、このタイムゾーンの時間に変換する。 このタイムゾーンの時刻に変換する。
Parameters:
long stdTime このタイムゾーンの時刻に合わせる必要があるUTC時刻は以下の通りである。 このタイムゾーンの時刻に調整する必要があるUTC時刻。
const nothrow scope @safe long tzToUTC(long adjTime);
このタイムゾーンの時刻で、西暦1月1日午前0時からのhnsecs(100ns)数を取る、 西暦1月1日午前0時からのhnsecs(100ns)をこのタイムゾーンの時刻に変換する。 時間)に変換する。
Parameters:
long adjTime このタイムゾーンの時刻をUTC時刻に合わせる必要がある をUTC時間に変換する。
static @safe immutable(WindowsTimeZone) getTimeZone(string name);
を返す。 TimeZoneを返す。 ゾーンの名前を返す。タイムゾーン情報はWindowsのレジストリから取得される。 レジストリから取得される。
Parameters:
string name 希望するタイムゾーンのTZデータベース名。
Throws:
std.datetime.date.DateTimeException指定したタイムゾーンが見つからない場合は のデータベース名。

例:

auto tz = WindowsTimeZone.getTimeZone("Pacific Standard Time");

static @safe string[] getInstalledTZNames();
システムにインストールされているタイムゾーンの名前のリストを返す。 の名前のリストを返す。WindowsTimeZoneが返すリストには、TZデータベースの名前ではなく、Windowsの TZデータベース名ではない。しかし TimeZone.getinstalledTZNames はTZデータベース名 を返す。
nothrow @safe void setTZEnvVar(string tzDatabaseName);
この関数はPosix専用である。
TZ環境変数を設定することで、PosixシステムのローカルタイムゾーンをTZ 環境変数 TZ を設定することで、Posix システムのローカルタイムゾーンを TZ データベース名で設定する。
残念ながら、WindowsではTZ データベース名を使ってWindows上で行う方法はないので、この関数はPosixシステム上にしか存在しない。
nothrow @safe void clearTZEnvVar();
この関数はPosix専用である。
TZ環境変数をクリアする。
struct TZConversions;

pure @safe TZConversions parseTZConversions(string windowsZonesXMLText);
IANAタイムゾーンデータベースのタイムゾーン名(POSIXシステムが使用するもの)と (POSIXシステムが使用する)とWindowsが使用するタイムゾーン名の変換を提供する。
Windowsは、IANAタイムゾーンデータベースが使用するタイムゾーン名とは 異なるタイムゾーン名を使用している。 Windowsは、IANAタイムゾーン・データベースとは異なるタイムゾーン名を使用しており、その対応関係は時間の経過とともに変化する(特にMicrosoftがWindowsをアップデートした場合)。 (特にMicrosoftがWindowsをアップデートしたとき)。 windowsZones.xml は現在の変換を提供する。 を提供する。 parseTZConversionsはwindowsZones.xmlからこれらの変換を読み込む。 Dプログラムはそれらの変換を使うことができる。
ただし、Windowsのタイムゾーン情報は、I.D.のタイムゾーン情報よりも正確でないことが多いことに注意する必要がある。 Windows上のタイムゾーン情報は、IANAタイムゾーンデータベースのものより正確でないことが多い。 もし本当に正確なタイムゾーン情報が欲しいのであれば、IANAタイムゾーンデータベースファイルを使うべきである。 のIANAタイムゾーンデータベースファイルを使うべきである。 PosixTimeZoneを付けたファイルを使うべきである。 よりも WindowsTimeZoneを使うべきである。 WindowsTimeZoneの方がより理にかなっている。 の方がより理にかなっている。 の方が理にかなっている。
また、IANAタイムゾーンデータベースには、Windowsよりも多くのタイムゾーンがある。 よりも多くのタイムゾーンを持っている。
Parameters:
string windowsZonesXMLText そのため windowsZones.xml
Throws:
指定されたXMLの解析中にエラーが発生した場合は例外が発生する。
    // ローカルファイルからの変換を解析する。
    auto text = std.file.readText("path/to/windowsZones.xml");
    auto conversions = parseTZConversions(text);

    // あるいは、実行時にウェブからXMLファイルを取得し、
    // それをパースすることで、最新であることが保証される。
    // ただし、サイトがダウンしたり、unicode.orgがURLを変更したりすると、
    // コードが心配する必要があるという欠点がある。
    auto url = "http://unicode.org/cldr/data/common/supplemental/windowsZones.xml";
    auto conversions2 = parseTZConversions(std.net.curl.get(url));
string[][string] toWindows;
キーはWindowsのタイムゾーン名で、値はそれに近いIANA TZデータベース名のリストである。 近いIANA TZデータベース名のリストである。 現在は1つだけだが、万が一のために複数指定できる)。
string[][string] fromWindows;
キーはIANAタイムゾーンデータベース名で、値は近いWindowsタイムゾーン名のリストである。 値は、近いWindowsタイムゾーン名のリストである(通常は1つだけだが、複数にすることもできる)。 複数の場合もある)。