我一直在尝试将“ Mon Jan 21 2019 20:06:48 GMT-0400(EDT)”转换为(01/21/2019 20:06:48)这种格式的java

时间:2019-04-16 20:44:38

标签: java date simpledateformat date-format

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE MMM dd yyyy HH:mm:ss");

OR

java.text.DateFormat dateFormat = new java.text.SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss");

我在数据库表中使用时间格式,必须将它们转换为yyyy-MM-dd HH:mm:ssMM/dd/YYYY HH:mm:ss

输入:Mon Jan 21 2019 20:06:48 GMT-0400 (EDT)

预期输出:01/21/2019 20:06:48

1 个答案:

答案 0 :(得分:0)

2019年1月21日是一个星期四,不是星期四,Java解析时会抛出错误


您需要一个格式化程序来解析您的字符串,并且需要一个格式化程序来按需要打印日期

  • 如果您的系统默认使用Locale.ENGLISH,则可以将其删除):

String input = "Mon Jan 21 2019 20:06:48 GMT-0400 (EDT)";

DateTimeFormatter inFormatter = 
    DateTimeFormatter.ofPattern("EE MMM dd yyyy HH:mm:ss 'GMT'xx (z)", Locale.ENGLISH);
DateTimeFormatter outFormatter = 
    DateTimeFormatter.ofPattern("MM/dd/yy HH:mm:ss", Locale.ENGLISH);

OffsetDateTime od = OffsetDateTime.parse(input, inFormatter);

System.out.println(od);                         // 2019-01-21T20:06:48-04:00
System.out.println(od.format(outFormatter));    // 01/21/19 20:06:48