【问题标题】:How to get year, month, day from a String format in Java [duplicate]如何从Java中的String格式获取年,月,日[重复]
【发布时间】:2017-01-20 01:55:43
【问题描述】:

我正在做一项工作,我需要从 Java 中的字符串中获取年、月、日。字符串是这样的:20170119T163048

其中 2017 是年,01 是月,19 是日,16:30:48 是时间。

我实现了如下代码:

public void convertStringToDate (String string) {
    String dateInString = "";   
    SimpleDateFormat formatter = new SimpleDateFormat();
    Date date = formatter.parse("20170119T163048");
    System.out.println(date);
}

但似乎它不起作用。环顾四周,我实际上发现了很多类似的答案,但它们都不适合我,所以......

【问题讨论】:

  • 尝试yyyyMMdd'T'HHmmSS 的格式 - 或者更好的是,使用更新的日期/时间 API - 用于example
  • 是的,到目前为止它对我有用。谢谢。
  • 更一般的欺骗:Java string to date conversion
  • LocalDateTime.parse( "20170119T163048" , DateTimeFormatter.ofPattern( "uuuuMMdd'T'HHmmss" ) ).getYear() & .getMonthValue() & .getDayOfMonth()

标签: java date datetime simpledateformat


【解决方案1】:

您应始终参考文档。Simple Date Format Documentation

public static void main(String[] args) throws Exception{
    SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd'T'HHmmss");
    Date date = formatter.parse("20170119T163048");
    System.out.println(date.toString());
}

【讨论】:

  • 哦,它有效,谢谢。但是我可以知道'T'是什么吗?我认为这是让我感到困惑的主要部分。
  • 'T' 表示时间格式字符串中的时间。总是值得阅读官方文档 - docs.oracle.com/javase/7/docs/api/java/text/…
  • 实际上,在格式“T”表示文字的上下文中,它希望在格式中的这一点找到“T”。对于 ISO 格式,“T”是时间分隔符。新的日期/时间 API 有许多现成的 ISO 格式 ;)
  • 对这个答案赞不绝口
  • @ScaryWombat,是的,一个非常直接的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-08
  • 2019-12-12
  • 2013-07-26
相关资源
最近更新 更多