【发布时间】:2019-10-24 22:53:00
【问题描述】:
我正在尝试将 JSON 对象转换为日期并将其写入数据库。但是,将日期转换为 EST 的代码不起作用。将日期转换为 EST 的最佳方法是什么?
JSON 条目
"custom_date_1": "2019-05-19","
转换代码
int id;
Date trainingDate;
SimpleDateFormat format = new SimpleDateFormat("DD-MM-YY", Locale.US);
TimeZone tz = TimeZone.getTimeZone("EST");
format.setTimeZone(tz);
logger.info("custom_date_1: {}", object.getString("custom_date_1"));
try {
id= Integer.parseInt(object.getString("employee_number"));
trainingDate = format.parse(object.getString("custom_date_1"));
//Still says GMT
logger.info("trainingDate: {}", trainingDate);
map.put("employee_number", id);
map.put("custom_date_1", trainingDate);
} catch (ParseException e) {
e.printStackTrace();
}
日志声明
2019-06-10 14:00:00,226 INFO custom_date_1: 2019-05-19
2019-06-10 14:00:00,226 INFO trainingDate: Sun Dec 30 05:00:00 GMT 2018
【问题讨论】:
-
当您有一个没有时间的日期时,在特定时区要求它有什么意义?
-
任何日期都是特定时区中的同一日期。所以你可以用
LocalDate.parse(date);把它转换成日期? -
当您说“EST”时,您的真正意思是“东部标准时间”(纽约冬季观察到的 UTC 偏移量),还是您的意思是“纽约时区”?如果是前者,则表示为
UTC+5;如果是后者,表示为America/New_York。 (“EST”实际上是前者)。 -
我建议你不要使用
Date、SimpleDateFormat和TimeZone。那些课程设计糟糕且过时,尤其是中间的课程出了名的麻烦。而是使用来自java.time, the modern Java date and time API 的LocalDate(乍一看,在我看来你不需要任何其他类)。 -
@P.Soutzikevich 不,不是重复的。 That Question 是关于时间的日期,而这个问题似乎是关于仅日期的(虽然不清楚)。
标签: java date simpledateformat