gpt4 book ai didi

java - 为什么 YAML 解析出来的时间戳不对?

转载 作者:行者123 更新时间:2023-11-29 05:28:32 27 4
gpt4 key购买 nike

Yaml 文件:

!!test.User
timestamp: 2012-11-22T01:02:03.567Z

Java 类:

package test;

public class User {
public Date timestamp;
}

snakeyaml 解析它:

String str = "2012-11-22T01:02:03.567Z";

// parse it manually
Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").parse(str);
System.out.println("manually: " + date);

// parse it by snakeyaml
Yaml yaml = new Yaml();
yaml.setBeanAccess(BeanAccess.FIELD);
InputStream input = new FileInputStream("C:\\test.yaml");
User myUser = yaml.loadAs(input, User.class);
System.out.println("by Yaml: " + user.timestamp);

它打印:

manually: Thu Nov 22 01:02:03 CST 2012
by Yaml: Thu Nov 22 09:02:03 CST 2012

你可以看出它们是不同的。为什么?

最佳答案

您的手动方法获取的是当前时区的时间,但实际上是以UTC 表示的(如Z 时区所示)。所以实际上 Yaml 解析的值似乎是正确的。

虽然我对实际值感到困惑,CST(美国中央标准时间)应该比 UTC 晚 6 小时,但你却提前了 8 小时。

关于java - 为什么 YAML 解析出来的时间戳不对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21902226/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com