Share via


Change Time Zone of Azure Role Instances ( VM's)

There is problems when you are developing applications which based on cloud services. That is , time of your service (servers ) are different than the time that your application. If you are using time stamp based data pulling  from the cloud service you are in big trouble.

Here if two basic solutions that you can use in those scenarios

  1. Use UTC (absolute) Time (highly recommended)
  2. Change time zone of the server according to the  requirement

Use absolute time you can just do with simple DateTime object.
in C# simply like this

DateTime.UtcNow

Change Time zone of the Server ( Instances of cloud service )
This is the Task that you cannot find lot of documentation
 If you follow following steps You can easily change server time zone ( In azure (cloud) it will randomly create and no one can predict that which instance of the server will run entire service life cycle *Its never happens with cloud) in every running instance once it starting

  1. Create batch (*.bat) file with flowing command
tzutil /s "Sri Lanka Standard Time" 
 

**Here is time zone reference **

Index Name of Time Zone Time
000 Dateline Standard Time (GMT-12:00) International Date Line West
001 Samoa Standard Time (GMT-11:00) Midway Island, Samoa
002 Hawaiian Standard Time (GMT-10:00) Hawaii
003 Alaskan Standard Time (GMT-09:00) Alaska
004 Pacific Standard Time (GMT-08:00) Pacific Time (US and Canada); Tijuana
010 Mountain Standard Time (GMT-07:00) Mountain Time (US and Canada)
013 Mexico Standard Time 2 (GMT-07:00) Chihuahua, La Paz, Mazatlan
015 U.S. Mountain Standard Time (GMT-07:00) Arizona
020 Central Standard Time (GMT-06:00) Central Time (US and Canada
025 Canada Central Standard Time (GMT-06:00) Saskatchewan
030 Mexico Standard Time (GMT-06:00) Guadalajara, Mexico City, Monterrey
033 Central America Standard Time (GMT-06:00) Central America
035 Eastern Standard Time (GMT-05:00) Eastern Time (US and Canada)
040 U.S. Eastern Standard Time (GMT-05:00) Indiana (East)
045 S.A. Pacific Standard Time (GMT-05:00) Bogota, Lima, Quito
050 Atlantic Standard Time (GMT-04:00) Atlantic Time (Canada)
055 S.A. Western Standard Time (GMT-04:00) Caracas, La Paz
056 Pacific S.A. Standard Time (GMT-04:00) Santiago
060 Newfoundland and Labrador Standard Time (GMT-03:30) Newfoundland and Labrador
065 E. South America Standard Time (GMT-03:00) Brasilia
070 S.A. Eastern Standard Time (GMT-03:00) Buenos Aires, Georgetown
073 Greenland Standard Time (GMT-03:00) Greenland
075 Mid-Atlantic Standard Time (GMT-02:00) Mid-Atlantic
080 Azores Standard Time (GMT-01:00) Azores
083 Cape Verde Standard Time (GMT-01:00) Cape Verde Islands
085 GMT Standard Time (GMT) Greenwich Mean Time: Dublin, Edinburgh, Lisbon, London
090 Greenwich Standard Time (GMT) Casablanca, Monrovia
095 Central Europe Standard Time (GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague
100 Central European Standard Time (GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb
105 Romance Standard Time (GMT+01:00) Brussels, Copenhagen, Madrid, Paris
110 W. Europe Standard Time (GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna
113 W. Central Africa Standard Time (GMT+01:00) West Central Africa
115 E. Europe Standard Time (GMT+02:00) Bucharest
120 Egypt Standard Time (GMT+02:00) Cairo
125 FLE Standard Time (GMT+02:00) Helsinki, Kiev, Riga, Sofia, Tallinn, Vilnius
130 GTB Standard Time (GMT+02:00) Athens, Istanbul, Minsk
135 Israel Standard Time (GMT+02:00) Jerusalem
140 South Africa Standard Time (GMT+02:00) Harare, Pretoria
145 Russian Standard Time (GMT+03:00) Moscow, St. Petersburg, Volgograd
150 Arab Standard Time (GMT+03:00) Kuwait, Riyadh
155 E. Africa Standard Time (GMT+03:00) Nairobi
158 Arabic Standard Time (GMT+03:00) Baghdad
160 Iran Standard Time (GMT+03:30) Tehran
165 Arabian Standard Time (GMT+04:00) Abu Dhabi, Muscat
170 Caucasus Standard Time (GMT+04:00) Baku, Tbilisi, Yerevan
175 Transitional Islamic State of Afghanistan Standard Time (GMT+04:30) Kabul
180 Ekaterinburg Standard Time (GMT+05:00) Ekaterinburg
185 West Asia Standard Time (GMT+05:00) Islamabad, Karachi, Tashkent
190 India Standard Time (GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi
193 Nepal Standard Time (GMT+05:45) Kathmandu
195 Central Asia Standard Time (GMT+06:00) Astana, Dhaka
200 Sri Lanka Standard Time (GMT+06:00) Sri Jayawardenepura
201 N. Central Asia Standard Time (GMT+06:00) Almaty, Novosibirsk
203 Myanmar Standard Time (GMT+06:30) Yangon Rangoon
205 S.E. Asia Standard Time (GMT+07:00) Bangkok, Hanoi, Jakarta
207 North Asia Standard Time (GMT+07:00) Krasnoyarsk
210 China Standard Time (GMT+08:00) Beijing, Chongqing, Hong Kong SAR, Urumqi
215 Singapore Standard Time (GMT+08:00) Kuala Lumpur, Singapore
220 Taipei Standard Time (GMT+08:00) Taipei
225 W. Australia Standard Time (GMT+08:00) Perth
227 North Asia East Standard Time (GMT+08:00) Irkutsk, Ulaanbaatar
230 Korea Standard Time (GMT+09:00) Seoul
235 Tokyo Standard Time (GMT+09:00) Osaka, Sapporo, Tokyo
240 Yakutsk Standard Time (GMT+09:00) Yakutsk
245 A.U.S. Central Standard Time (GMT+09:30) Darwin
250 Cen. Australia Standard Time (GMT+09:30) Adelaide
255 A.U.S. Eastern Standard Time (GMT+10:00) Canberra, Melbourne, Sydney
260 E. Australia Standard Time (GMT+10:00) Brisbane
265 Tasmania Standard Time (GMT+10:00) Hobart
270 Vladivostok Standard Time (GMT+10:00) Vladivostok
275 West Pacific Standard Time (GMT+10:00) Guam, Port Moresby
280 Central Pacific Standard Time (GMT+11:00) Magadan, Solomon Islands, New Caledonia
285 Fiji Islands Standard Time (GMT+12:00) Fiji Islands, Kamchatka, Marshall Islands
290 New Zealand Standard Time (GMT+12:00) Auckland, Wellington
300 Tonga Standard Time (GMT+13:00) Nuku'alofa
  1. Add it in to the cloud service ( Not to the cloud service project )

*Add it to project which identifies as role (web, worker) by cloud project . In following example You need to add batch file into WebRole1 project

http://2.bp.blogspot.com/-BrV-E7rbcNk/VLU5f2gkhCI/AAAAAAAAA4E/TrjtxRCnIm0/s1600/Untitled.png

  1. Then R-Click on the batch file and select properties from visual studio . In properties under the Advanced change Copy To Output Directory property in to copy always.

http://4.bp.blogspot.com/-7BDWob-OKwU/VLU6GFPx4DI/AAAAAAAAA4M/g0C-Jnwe03U/s1600/Untitled.png

  1. Then go to the Cloud project and open the ServiceDefinition.csdf file

http://4.bp.blogspot.com/-o4CQeEPjM2I/VLU6uGgZh2I/AAAAAAAAA4U/UpO24X3drRw/s1600/Untitled.png

  1. Under WebRole Tag add Start up task as follow .
 <WebRole name="*****" vmsize="Small">
    <Startup>
      <Task commandLine="NameOfBatchFile.bat" executionContext="elevated" taskType="simple"/>
    </Startup> 
     <Sites>
      <Site name="Web">
        <Bindings>
          <Binding name="Endpoint1" endpointName="Endpoint1" />
        </Bindings>
      </Site>
    </Sites>
    <Endpoints>
      <InputEndpoint name="Endpoint1" protocol="http" port="80" />
    </Endpoints>
  </WebRole>

Now it is done ... You free to go with your cloud service

Enjoy