如何将字符串转换为格式为 yyyy-MM-dd HH:MM:ss 的日期

新手上路,请多包涵

我有一个像 "2015-07-16 17:07:21" 这样的字符串。我想将它转换成相同格式的日期。我试过这样的事情:

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:MM:ss");
Date date = sdf.parse("2015-07-16 17:07:21");

但输出格式不同,如 Thu Jul 16 17:00:21 IST 2015 。我怎样才能让它按我的需要工作。谁能帮我。我知道这可能是重复的,但我没有找到任何运气。

原文由 sparrow 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 826
2 个回答

来自 Java API https://docs.oracle.com/javase/8/docs/api/java/util/Date.html

Date 类代表一个特定的时间点,精度为毫秒。

尝试了解 DateDateFormat 的区别/联系。

 public static void main(String [] args) throws ParseException{
    String dateString = "2015-07-16 17:07:21";
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    // use SimpleDateFormat to define how to PARSE the INPUT
    Date date = sdf.parse(dateString);

    // at this point you have a Date-Object with the value of
    // 1437059241000 milliseconds
    // It doesn't have a format in the way you think

    // use SimpleDateFormat to define how to FORMAT the OUTPUT
    System.out.println( sdf.format(date) );

    sdf = new SimpleDateFormat();
    System.out.println( sdf.format(date) );

  // ....
}

输出:(请注意日期保持不变,只是它的表示(格式)发生了变化)

 2015-07-16 17:07:21
7/16/15 5:07 PM

原文由 sinclair 发布,翻译遵循 CC BY-SA 3.0 许可协议

尝试使用这个:

     public static void main(String[] args) {
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String dateInString = "2015-07-16 17:07:21";
    try {

        Date date = formatter.parse(dateInString);

        System.out.println(date);
        System.out.println(formatter.format(date));

    } catch (ParseException e) {
        e.printStackTrace();
    }
}

输出:

 Thu Jul 16 17:07:21 IST 2015
2015-07-16 17:07:21

注意: 对于完整的日期和时间模式,请参考这个 http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

原文由 CK Wolfe 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题