Я получаю неправильное значение часового пояса (IST) из следующего кода. Его от bugreportjava-программа сообщает о неправильном часовом поясе на linux (показывает IST для Европы/Дублина)
import java.util.*;
import java.text.*;
class simpleTest
{
public static void main(String args[])
{
System.out.println("Simple test Josh ");
Date now = new Date();
DateFormat df = DateFormat.getDateInstance();
Calendar cal = Calendar.getInstance();
System.out.println("\n TIME ZONE :"+ cal.getTimeZone().getDisplayName());
long nowLong = now.getTime();
String s = now.toString();
System.out.println("Value of milliseconds since Epoch is " + nowLong);
System.out.println("Value of s in readable format is " + s);
}
}
С Дублин, зона неправильно. Он показывает IST
$ java -Duser.timezone=Europe/Dublin simpleTest
Simple test Josh
TIME ZONE :Greenwich Mean Time
Value of milliseconds since Epoch is 1408095007238
Value of s in readable format is Fri Aug 15 10:30:07 IST 2014
Это один нормально
$ java -Duser.timezone=Europe/Helsinki simpleTest
Simple test Josh
TIME ZONE :Eastern European Time
Value of milliseconds since Epoch is 1408095025866
Value of s in readable format is Fri Aug 15 12:30:25 EEST 2014
Где значение IST взялось?
Я проверил Os файлы, такие как/и т.д./LocalTime
bash-3.2# cd /etc
bash-3.2# ls -lrt localtime
lrwxrwxrwx 1 root root 33 Nov 16 2010 localtime -> /usr/share/zoneinfo/Europe/Dublin
/и т.д./sysconfig/часы
bash-3.2# cd /etc/sysconfig/
bash-3.2# cat clock
# The ZONE parameter is only evaluated by system-config-date.
# The timezone of the system is defined by the contents of /etc/localtime.
ZONE="Europe/Dublin"
UTC=true
ARC=false
bash-3.2# pwd
http://stackoverflow.com/questions/6392/java-time-zone-is-messed-up – Jayan
Где @JonSkeet и его удивительное знание часового пояса, когда он вам нужен. – Sinkingpoint