我有一个场景,无论我的系统时区是什么,我都必须在日期对象中打印 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);
}
我的输出如下:
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
我预计日期是 2016 年 8 月 23 日星期二 12:46:59 IST。
如有任何帮助,我们将不胜感激。
提前致谢。
最佳答案
Date.toString()
使用您的 JVM 的默认时区,因为 Date
实际上没有明确的时区 - 它实际上只是几毫秒的包装器。
您必须使用具有明确时区的 DateFormat
进行打印才能在特定时区打印 Date
。
关于java - 在日期对象中从 BST 到 Java 中的 IST 的日期转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39094723/