为什么SimpleDateFormat setTimeZone不会为无效时区引发错误

问题描述 投票:1回答:3

我正在使用SimpleDateFormat将时间的字符串类型转换为Unix时间戳,但是当我将时区设置为非法值时,我仍然得到正确的结果,这是SimpleDateFormat.parse()方法的定义方式吗?如果我想进行单元测试以测试失败案例,该怎么办?

String str = "2016-06-21-10-19-22";

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");
df.setTimeZone(TimeZone.getTimeZone("fewfefewf"));

Date date = df.parse(str);

long epoch = date.getTime();
System.out.println(epoch);
java validation timezone datetime-parsing
3个回答
1
投票

是由于无法理解指定的TimeZone的getTimeZone方法返回默认的GMT区域


0
投票

[如果查看getTimeZone类中的TimeZone私有方法,您将看到,如果无法正确解析时区(在这种情况下,parseCustomTimeZone返回null),它将设置GMT区域。


0
投票

java.time

© www.soinside.com 2019 - 2024. All rights reserved.