繁体   English   中英

使用SimpleDateFormat格式化日期

[英]format date using SimpleDateFormat

我使用简单的日期格式API解析下面的日期时得到解析器异常。

  String inputTimeStamp = "2012/07/19 09:49:00 - GMT -08:00";
  java.text.SimpleDateFormat dateformate= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  effDate = dateformate.parse(inputTimeStamp);

请帮我解决这个问题。

更改

java.text.SimpleDateFormat dateformate=
    new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

java.text.SimpleDateFormat dateformate=
    new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

你的inputTimeStamp中有斜杠(/)

因为您正在解析具有不同格式的日期,所以您已将其描述为SimpleDateFormat 如果effDateString类型并且应该保留格式化日期,则以下代码可能会解决它,尽管GMT-08:00之间不应该有空格。

 String inputTimeStamp = "2012/07/19 09:49:00 - GMT -08:00";
 SimpleDateFormat inputDateformat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss - z"); 
 SimpleDateFormat dateformate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 effDate = dateformate.format(inputDateFormat.parse(inputTimeStamp));

我强烈推荐joda时间 ,特别是当你想在日期做计算时。

 String inputTimeStamp = "2012/07/19 09:49:00 - GMT -08:00";
 DateTimeFormatter inputDateformat = DateTimeFormat.forPattern("yyyy/MM/dd HH:mm:ss - z Z"); 
 DateTimeFormatter dateformate = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
 effDate = dateformate.print(inputDateFormat.parseDateTime(inputTimeStamp));

模式为: yyyy/MM/dd HH:mm:ss - z其中z表示一般时区。 SimpleDateFormat

尝试这个:

new SimpleDateFormat("yyyy/MM/dd HH:mm:ss - z");

FYR

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM