Create Your Own Time Zone in Linux
I don’t know why do you need to create your own time zone in Linux? But I had to customized TZ file and create my own time zone because of what does our application needs? . First lets see that what is TZ and TZ Database.
Time Zone Database (TZ Database)
The Time Zone Database (often called tz or zoneinfo) contains code and data that represent the history of local time for many representative locations around the globe. It is updated periodically to reflect changes made by political bodies to time zone boundaries, UTC offsets, and daylight-saving rules. Its management procedure is documented in BCP 175: Procedures for Maintaining the Time Zone Database.
https://www.iana.org/time-zones
You can download the latest time zone database from this link: https://www.iana.org/time-zones
Zone File, UTC Offset, Rule
The files are text files and contains the below information about a time zone:
- Definition of a time zone
- Daylight saving time (DST) rules
- Names of time zones
Example
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule US 1918 1919 - Mar lastSun 2:00 1:00 D Rule US 1918 1919 - Oct lastSun 2:00 0 S Rule US 1942 only - Feb 9 2:00 1:00 W # War Rule US 1945 only - Aug 14 23:00u 1:00 P # Peace Rule US 1945 only - Sep 30 2:00 0 S Rule US 1967 2006 - Oct lastSun 2:00 0 S Rule US 1967 1973 - Apr lastSun 2:00 1:00 D Rule US 1974 only - Jan 6 2:00 1:00 D Rule US 1975 only - Feb 23 2:00 1:00 D Rule US 1976 1986 - Apr lastSun 2:00 1:00 D Rule US 1987 2006 - Apr Sun>=1 2:00 1:00 D Rule US 2007 max - Mar Sun>=8 2:00 1:00 D Rule US 2007 max - Nov Sun>=1 2:00 0 S .... # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER Rule NYC 1920 only - Mar lastSun 2:00 1:00 D Rule NYC 1920 only - Oct lastSun 2:00 0 S Rule NYC 1921 1966 - Apr lastSun 2:00 1:00 D Rule NYC 1921 1954 - Sep lastSun 2:00 0 S Rule NYC 1955 1966 - Oct lastSun 2:00 0 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/New_York -4:56:02 - LMT 1883 November 18, 12:03:58 -5:00 US E%sT 1920 -5:00 NYC E%sT 1942 -5:00 US E%sT 1946 -5:00 NYC E%sT 1967 -5:00 US E%sT
Make The Time Zone
Prepare the zone file and make any change that you want, then compile it with the below command:
zic {The zone file path}
If there is no problem, then you’ll have your own time zone. The file will be created according to the zone file name but time zone name will be same as “Zone Name”.
Possible Error
The below error may be occurred during compiling time zone file:
“TZ”, line 62: warning: time zone abbreviation differs from POSIX standard (+800) (rule from “TZ”, line 1)
This is related to rules, ZIC version and TZ Database version. You must use newer ZIC version to resolve that.