I have a Jenkins-ci installation on a debian squeeze.
Current default time zone: 'America/Toronto' Local time is now: Mon Jul 9 16:00:57 EDT 2012. Universal Time is now: Mon Jul 9 20:00:57 UTC 2012.
In the /etc/default/rcS file i have :
UTC=no
Unfortunately this is not working, In the system information of jenkins:
user.timezone Etc/UTC
I searched for a few hour.. unfortunately could not find a fix any help would be greatly appreciated.
Thank for your time
You need to pass in your required value of user.timezone as a JVM argument when you start Jenkins. The Java command line will look something like:
Unfortunately I'm not familiar with the Debian installation, but the JVM parameters should either be defined in the /etc/init.d/jenkins script or in a properties file that is referenced from that script.
Three years later, I found several gotchas getting this to work. So, I'll elaborate upon the accepted answer (which is correct) and add a complete answer for CentOS.
Gotcha #1: The Jenkins settings to change
The current Jenkins documentation on changing time zone says to define
user.timezone
ororg.apache.commons.jelly.tags.fmt.timeZone
. But, I have found that both are necessary. The jelly one works for Jenkins proper and some plugins, while the user one works for other plugins.Gotcha #2: The OS settings to update
For CentOS in the Eastern US, edit
/etc/sysconfig/jenkins
to:If you put these
-D
settings intoJENKINS_ARGS
, it won't work.Gotcha #3: Restarting
You have to restart from the command line, the entire service. Simply doing a Jenkins safe restart is not sufficient. So:
When you've done all this, check that both time zone settings match in your Jenkins system information panel: http://jenkins.example.com/systemInfo
In Ubuntu 14.04, none of the above solutions worked for me, but I ended up running the following command, which pulls up an interface where the timezone can be changed from the default (none selected) to something more specific:
sudo dpkg-reconfigure tzdata
First, you're prompted to select the continent, (i.e. America, Asia, etc) and then the city, which in my case resulted in "Asia/Kolkata" for the IST timezone in India.
See UbuntuTime - Using the Command Line.
In addition, after changing the timezone, I restarted Jenkins:
sudo /etc/init.d/jenkins stop sudo /etc/init.d/jenkins start
and then verified that the time was in local IST time. In
http://<yourservername>/systemInfo
, as provided by user bishop, under the System Properties section, for the "user.timezone" property, I now see "Asia/Kolkata" as its value.If this relates to the execution of jobs based on a cron schedule (ie Build Periodically), you can set you Time Zone in the cron schedule on a per job basis:
If you are running Jenkins in Apache Tomcat, add these to <Apache-Tomcat-Dir>/conf/catalina.properties:
Both are needed.
For jenkins v2.73.3 on CentOS 7.1 (in docker) we have found you have to both
1. set the OS timezone e.g. 'ln -sf /usr/share/zoneinfo/Asia/Jakarta /etc/localtime' and
2. under Manage Jenkins set the timezone e.g. 'Asia/Jakarta'.
After a regular jenkins:xxxx/restart the new timezone is used.
Adding an answer to cover the situation when running jenkins in a docker container under CentOS. In this case options might not be set in /etc/sysconfig/jenkins (depending on your jenkins service start scripts). A jenkins.sh script is used to start the jenkins service. This jenkins.sh script is similar to that used by the jenkins-inside-docker project so this answer is hopefully useful to any jenkins in docker projects deriving from that.
https://github.com/jenkinsci/docker/blob/master/jenkins.sh
Below we get TZ e.g. Europe/Dublin and pass -e $TZ to docker run so that we can have a script which writes that to /etc/timezone or links /etc/localtime but the important thing is passing these two arguments in JAVA_OPTS: "-Dorg.apache.commons.jelly.tags.fmt.timeZone=$TZ -Duser.timezone=$TZ". The jenkins.sh script passes these to the command-line which starts the jenkins process.
On docker host when creating the container example of docker run command:
Options were passed in docker variable in docker run command and then passed to jenkins start command.