我有一个场景,即我的系统时区是什么,我必须在日期对象中的IST中打印而不是在字符串中打印.这是我的下面的代码.
public static void main(String[] args) throws ParseException {
Date now = new Date();
DateFormat sdf = new SimpleDateFormat("yyyy:MM:dd-HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("IST"));
String txnDateTime = sdf.format(now);
sdf.setTimeZone(TimeZone.getTimeZone("IST"));
System.out.println("Date ::: "+txnDateTime);
Date n = null;
n = sdf.parse(txnDateTime);
System.out.println("Date format ::: "+n);
}
Run Code Online (Sandbox Code Playgroud)
我的输出如下:
In String : I am getting as Expected : 2016:08:23-12:46:59 IST Timing
In Date : I am still getting BST Time : Tue Aug 23 08:16:59 BST 2016
Run Code Online (Sandbox Code Playgroud)
我期待在2016年8月23日星期二12:46:59来到日期.
任何帮助,将不胜感激.
提前致谢.
Date.toString()使用你的JVM的默认时区,因为Date它实际上没有明确的时区 - 它实际上只是一个几毫秒的包装器.
您必须使用DateFormat带有显式时区的打印来打印Date特定时区.
| 归档时间: |
|
| 查看次数: |
427 次 |
| 最近记录: |