How to convert date format 2017-02-08 00:00:00.0 to 08/02/2017 in java?
本问题已经有最佳答案,请猛点这里访问。
我想将日期格式从2017-02-08 00:00:00.0转换为dd/mm/yyyy(08/02/2017)。我尝试了以下代码。
1 2 3 4 5 6 7 8 9 10 11 | String dateInString =bean.getDate(); Date date = null; SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); if (bean.getDate().matches("^[0-9]{2,4}(-[0-9]{1,2}){2}\\s[0-9]{1,2}(:[0-9]{1,2}){2}\\.[0-9]{1,}$")) { try { date = formatter.parse(dateInString); } catch (ParseException e) { e.printStackTrace(); } } |
但我在
您可以使用以下代码:
1 2 3 4 5 6 7 8 9 10 | SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); SimpleDateFormat format2 = new SimpleDateFormat("dd/MM/yyyy"); String date ="2017-02-08 00:00:00.0"; try { Date dateNew = format1.parse(date); String formatedDate = format2.format(dateNew); System.out.println(formatedDate); } catch (ParseException e) { e.printStackTrace(); } |
其他的答案是过时的,使用一些麻烦的旧日期时间类,如
将输入字符串解析为
输入字符串几乎符合标准ISO 8601格式。默认情况下,标准格式与java.time类一起使用。用
1 2 | String input ="2017-02-08 00:00:00.0".replace("" ,"T" ); LocalDateTime ltd = LocalDateTime.parse( input ); |
提取仅限日期的对象。
1 | LocalDate ld = ltd.toLocalDate(); |
生成表示该对象值的字符串。指定所需的格式模式。
1 2 3 |
1 2 3 4 5 6 7 8 9 10 | String dateInString ="2017-02-08 00:00:00.0"; Date date = null; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); try { date = formatter.parse(dateInString); } catch (ParseException e) { e.printStackTrace(); } SimpleDateFormat formatter2 = new SimpleDateFormat("dd/MM/yyyy"); System.out.println(formatter2.format(date)); |
创建SimpleDateFormat对象,并使用它将字符串解析为日期,并将日期格式化为字符串。如果您尝试过simpledateformat,但它不起作用,请显示您的代码和可能收到的任何错误。
mm和mm都不同。月mm分,分钟mm分几个月的例子
1 2 3 4 5 6 | 'M' - 7 (without prefix 0 if it is single digit) 'M' - 12 'MM' - 07 (with prefix 0 if it is single digit) 'MM' - 12 'MMM' - Jul (display with 3 character) 'MMMM' - December (display with full name) |
几分钟的例子
1 2 3 4 | 'm' - 3 (without prefix 0 if it is single digit) 'm' - 19 'mm' - 03 (with prefix 0 if it is single digit) 'mm' - 19 |