Zaw*_* oo 5 java yaml simpledateformat
我用org.yaml.snakeyaml.Yaml.
SimpleDateFormat使用系统时区(UTC +6:30).
我想要像SimpleDateFormat一样的yaml日期输出.
public static void main(String[] args) throws Exception {
String dateString = "2015-11-17 15:30:30";
/*
SimpleDateFormat will UTC +6:30 (Myanmar Timezone)
*/
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date sdfDate = format.parse(dateString);
System.out.println("Date 1 " + format.format(sdfDate));
/*
Yaml will not use.
*/
Yaml yaml = new Yaml();
//yaml.setTimeZone(xxx) --> Is there way to set timezone?
Date yamlDate = (Date) yaml.load(dateString);
System.out.println("Date 2" + format.format(yamlDate));
}
Run Code Online (Sandbox Code Playgroud)
产量
Date 1 2015-11-17 15:30:30
Date 2 2015-11-17 22:00:30
Run Code Online (Sandbox Code Playgroud)
我不确定这是解决这个问题的最佳方法。
暂时,我必须像下面这样解决。
这是以编程方式计算不同的时间(例如:+6:30)并附加到日期字符串。
日期字符串示例:2015-11-17 15:30:30 +6:30.
String sdfSt = "2015-11-17 15:30:30";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date sdfDate = format.parse(sdfSt);
System.out.println("Date 1 " + format.format(sdfDate));
Yaml yaml = new Yaml();
String itmeDiff = "+6:30"; --> for my timezone
Date yamlDate = (Date) yaml.load(sdfSt + itmeDiff);
System.out.println("Date 2 " + format.format(yamlDate));
Run Code Online (Sandbox Code Playgroud)
输出
Date 1 2015-11-17 15:30:30
Date 2 2015-11-17 15:30:30
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2167 次 |
| 最近记录: |