### LC_TOD Locale Category

The LC_TOD category source definition in locale source files defines the rules that determine the beginning, end, and duration of daylight savings time and the difference between local time and Coordinated Universal Time (UTC) in the locale that is compiled from that source by the LOCALDEF utility. The LC_TOD category is not defined in any of the locales that ship with IBM C and C++ Compilers. To specify time zone and daylight savings time information, you must either add LC_TOD and rebuild the locale or use the tzset function.

The following keywords make up this category definition:

copy timezone_difference timezone_name daylight_name start_month | end_month start_week end_week start_day end_day | start_time end_time shift uctname

Note:
The `start_week` and `end_week` need not be used. The `start_day` and `end_day` fields can specify either the day of the week or the day of the month. If day of month is specified, `start_week` and `end_week` become redundant

`copy`
Specifies the name of an existing locale to be used as the source for the definition of this category. If this keyword is specified, no other keyword should be present in this category. If the locale is not found, an error is reported and no locale output is created. The `copy` keyword cannot specify a locale that also specifies the `copy` keyword for the same category.

`timezone_difference`
An integer specifying the time zone difference expressed in minutes. If the local time zone is west of the Greenwich Meridian, this value must be positive. If the local time zone is east of the Greenwich Meridian, this value must be negative. An absolute value greater than 1440 (the number of minutes in a day) for this keyword indicates that the run time library is to get the time zone difference from the system.

`timezone_name`
A string specifying the time zone name such as "PST" (Pacific Standard Time) specified within quotation marks. The default for this field is a NULL string.

`daylight_name`
A string specifying the Daylight Saving Time zone name, such as "Ph4" (Pacific Daylight Time), if there is one available. The string must be specified within quotation marks. If DST information is not available, this is set to NULL, which is also the default. This field must be filled in if DST information as provided by the other fields is to be taken into account by the mktime and localtime functions. These functions ignore DST if this field is NULL.

`start_month`
An integer specifying the month of the year when Daylight Saving Time comes into effect. This value ranges from 1 through 12 inclusive, with 1 corresponding to January and 12 corresponding to December. If DST is not applicable to a locale, start_month is set to 0, which is also the default.

`end_month`
An integer specifying the month of the year when Daylight Saving Time ceases to be in effect. The specifications are similar to those for `start_month`.

`start_week``
` An integer specifying the week of the month when DST comes into effect. Acceptable values range from -4 to +4. A value of 4 means the fourth week of the month, while a value of -4 means fourth week of the month, counting from the end of the month. Sunday is considered to be the start of the week. If DST is not applicable to a locale, start_week is set to 0, which is also the default.

`end_week`
An integer specifying the week of the month when DST ceases to be in effect. The specifications are similar to those for `start_week`.

`start_day`
An integer specifying the day of the week or the day of the month when DST comes into effect. The value depends on the value of `start_week`. If `start_week` is not equal to `0`, this is the day of the week when DST comes into effect. It ranges from `0` through `6` inclusive, with `0` corresponding to Sunday and `6` corresponding to Saturday. If `start_week` equals `0`, `start_day` is the day of the month (for the current year) when DST comes into effect. It ranges from `1` through to the last day of the month inclusive. The last day of the month is `31` for January, March, May, July, August, October, and December. It is `30` for April, June, September, and November. For February, it is `28` on non-leap years and `29` on leap years. If DST is not applicable to a locale, `start_day` is set to `0`, which is also the default.

`end_day`
An integer specifying the day of the week or the day of the month when DST ceases to be in effect. The specifications are similar to those for `start_day`.

`start_time`
An integer specifying the number of seconds after 12:00 midnight, local standard time, when DST comes into effect. For example, if DST is to start at 2:00 am, `start_time` is assigned the value `7200`; for 12:00 am (midnight), `start_time` is `0`; for 1:00 am, it is `3600`.

`end_time`
An integer specifying the number of seconds after 12 midnight, local standard time, when DST ceases to be in effect. The specifications are similar to those for `start_time`.

`shift`
An integer specifying the DST time shift, expressed in seconds. The default is `3600`, for 1 hour.

`uctname`
A string specifying the name to be used for Coordinated Universal Time. If this keyword is not specified, the uctname will default to "UTC".

Example: LC_TOD Locale Category Definition

Internationalization
Localization and Locales

Customize a Locale

Locale Categories
Locale Source Files