【问题标题】:How can I convert this string to a standard date in java?如何将此字符串转换为java中的标准日期?
【发布时间】:2010-09-25 19:46:31
【问题描述】:

之前我发布了以下问题:How can I convert this date in Java?

但现在我想知道如何将此字符串转换为日期/时间。

2010-03-15T16:34:46Z

例如:03/15/10

更新:

String pattern = "MM/dd/yy 'at' HH:mm";
                Date date = new Date();
                try {
                    date = new SimpleDateFormat(pattern).parse(q.getUpdated_at());
                } catch (ParseException e) {
                    e.printStackTrace();
                }
                dateText.setText(new SimpleDateFormat("MM/dd/yy 'at' hh:mma").format(date));

给我这样的结果:

Mon Mar 15 16:34:50 MST 2010

如何将其格式化为

03/15/10 at 4:34PM

?

【问题讨论】:

    标签: java datetime time date-format simpledateformat


    【解决方案1】:

    SimpleDateFormatjoda-time DateTimeFormat 都可以解析这个,使用这个模式:

    String pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'";
    

    例如:

    Date date = new SimpleDateFormat(pattern).parse(dateString);
    

    和(乔达时间):

    DateTimeFormatter dtf = DateTimeFormat.forPattern(pattern);
    DateTime dateTime = dtf.parseDateTime(s);
    

    更新

    您有两种日期格式 - 一种用于解析输入,另一种用于格式化输出。所以:

    dateText.setText(new SimpleDateFormat("MM/dd/yy 'at' hh:mma").format(date));
    

    (当然,为了优化,SimpleDateFormat可以只实例化一次,重复使用)

    【讨论】:

    • 快到了!如何将其格式化以将结果显示为“2010 年 3 月 15 日下午 7:43”——我已经用代码更新了我的问题。
    • 根据答案中的SimpleDateFormat 链接,模式将是M/d/y 'at' H:mma。你检查链接了吗?
    • 我试过了,还是不行。得到相同的结果。查看问题中的更新代码。
    • 跟进:我尝试从链接中插入一些示例模式,但也没有运气。
    • @Bozho 我不确定您所说的“解析日期,并在字段中设置原始字符串”是什么意思。 -- 你能给我举个例子吗?
    【解决方案2】:

    简而言之,您想将字符串格式的日期转换为另一种字符串格式的日期时间>。你有:

    2010-03-15T16:34:46Z
    

    你想要

    03/15/10 at 4:34PM
    

    您不想最终使用 java.util.Date 对象,因为您最初在问题中暗示。您也不想使用它的toString(),因为它会返回its javadoc 中定义的固定格式。

    博卓的回答依然适用。使用java.text.SimpleDateFormat。首先,您需要将字符串格式的日期解析Date对象,以便您可以将其格式化回为另一种字符串格式。

    // First parse string in pattern "yyyy-MM-dd'T'HH:mm:ss'Z'" to date object.
    String dateString1 = "2010-03-15T16:34:46Z";
    Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").parse(dateString1);
    
    // Then format date object to string in pattern "MM/dd/yy 'at' h:mma".
    String dateString2 = new SimpleDateFormat("MM/dd/yy 'at' h:mma").format(date);
    System.out.println(dateString2); // 03/15/10 at 4:34PM
    

    【讨论】:

      【解决方案3】:

      如果要格式化输出字符串,请在代码中更改以下行

      dateText.setText(date.toString());
      

      dateText.setText(String.format("%1$tm/%1$td/%1$ty at %1$tl:%1$tM%1$Tp", date));
      

      【讨论】:

        猜你喜欢
        • 2012-08-22
        • 2014-03-18
        • 2017-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-21
        相关资源
        最近更新 更多