我有以下代码:
SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
String s2 = "Mon Oct 19 19:52:21 IST 2015";
System.out.println(format.parse(s2));
我预计该代码会打印出“2015年10月19日07:22:21 PDT 2015”,但令我惊讶的是它印有“2015年10月19日10:52:21 PDT 2015”。我可以看到“IST”是“z”的有效时区。但是,以下代码工作正常:
SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
String s2 = "Mon Oct 19 19:52:21 GMT+05:30 2015";
System.out.println(format.parse(s2));
请帮忙。
答案 0 :(得分:2)
使用ChartObjects("Chart 1").OnAction = "yourMacro"
是危险的,因为它可能代表印度或以色列ST。
假设你的意思是印度ST,试试这个:
IST
另外,请遵循@ Meno的回答
的建议答案 1 :(得分:0)
代码表达式
System.out.println(format.parse(s2));
始终在您的系统时区中打印您的即时/时刻(java.util.Date
类型的对象),这显然是PDT。您隐式在toString()
上应用方法java.util.Date
。使用像SimpleDateFormat
这样的专用格式化程序,并在此格式化程序上设置时区以获得所需的结果。
最后你需要两个格式化程序,一个用于解析,一个用于打印。