【问题标题】:Parsing String to Date error in Android [duplicate]在Android中解析字符串到日期错误[重复]
【发布时间】:2014-06-28 04:21:59
【问题描述】:

我在 Android 中遇到了一些日期解析错误。我实际上想要格式为 yyyy-MM-ddThh:mm:ss (2014-08-12T00:00:00) 的日期。

我以两种方式进行解析,一种使用当前日期和使用日期选择器。

a) 使用当前日期:

String d = DateFormat.getDateTimeInstance().format(new Date()).toString();

这里,“d”的值为 Jun28, 2014 12:17:30AM 我尝试使用 SimpleDateFormatter 解析它以获取(yyyy-MM-dd),但它没有用。错误是无法解析字符串。

b) 使用日期选择器,我能够默​​认获取日期为 dd/MM/yyyy。我能够将其解析为 yyyy-MM-dd。但是,如果日期或月份是个位数,则为 d/M/yyyy。

如何获得日期为 yyyy-MM-ddThh:mm:ss ?

【问题讨论】:

  • 回答了很多次。提示:搜索“Joda”和“8601”。

标签: java android parsing date datetime


【解决方案1】:

这是我用来插入数据库的一些代码

protected String formatDate(Date date){
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
        return dateFormat.format(date);
}

【讨论】:

  • 这是否适用于个位数的月份和日期?加个“T”怎么样?
  • 是的,它为那些(01、02 等)添加了一个 0。用 T 替换空间应该可以工作。
  • 实际上,它必须是“T”,但文档说它是合法的。
【解决方案2】:

试试这个..

String dd = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss").format(new Date())

【讨论】:

    【解决方案3】:

    您可以通过在创建 SimpleDateFormat 时指定输出格式的方式来获取所需的任何形式的日期。您可以通过用单引号括起来来添加“T”,如下所示:

    String formattedDate = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss").format(new Date());
    

    有关方便的简单日期格式参考,请查看此页面:http://developer.android.com/reference/java/text/SimpleDateFormat.html

    【讨论】:

      【解决方案4】:
       SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss"); 
          String finalDate=dateFormat.format(new Date());
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-26
        • 1970-01-01
        • 2013-01-21
        相关资源
        最近更新 更多