0

Facebook 向我返回一个字符串,例如:

06/15/1992

如何将此字符串日期转换为 Java Date 对象?

我尝试了以下操作,但它返回“Wed Jan 15 00:06:00 UTC 1992”,这不是正确的日期。

 String t = "06/15/1992";
 SimpleDateFormat dateFormat = new SimpleDateFormat("mm/dd/yyyy");
 Date test = dateFormat.parse(t);
4

5 回答 5

3

您需要1从月份字段中扣除,因为月份是从0. 所以"06/15/1992"应该是"05/15/1992"得到正确的结果。根据Javadoc

一个月用 0 到 11 的整数表示;0 是一月,1 是二月,以此类推;因此 11 是 12 月。

并使用具有正确格式字符串的SimpleDateFormatM :代表月份,m代表分钟。

String t = "05/15/1992";
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
Date test = dateFormat.parse(t);
于 2013-06-15T15:04:40.200 回答
2

用这个:

 SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");

代替

 SimpleDateFormat dateFormat = new SimpleDateFormat("mm/dd/yyyy");

由于 SimpleDateFormat 将字母的含义描述为

M : 年中的月
m : 小时中的分钟

有关 SimpleDateFormat 的更多信息,请遵循:http ://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html

于 2013-06-15T15:04:12.580 回答
1

应该

"MM/dd/yyyy"

m是分钟。

于 2013-06-15T15:03:26.987 回答
0
于 2017-02-18T19:18:54.283 回答
0

首先,您需要 MM(月),而不是 mm(分钟)。

Facebook 可以以不同的格式返回日期。这是图形文档:

该人的生日。这是一个固定格式的字符串,如 MM/DD/YYYY。但是,人们可以控制谁可以看到他们出生的年份与月份和日期分开,所以这个字符串只能是年份 (YYYY) 或月份 + 日期 (MM/DD)

https://developers.facebook.com/docs/graph-api/reference/user

您的代码应检查 Facebook 为您提供的日期格式。

    String[] dateParts = birthday.split(birthday, "/");
    try {
        switch (dateParts.length) {
            case 2:
                // A fully formed date: MM/dd/yyyy
                Date dob = new SimpleDateFormat("MM/dd/yyyy, Locale.US).parse(birthday));
                break;
            case 1:
                // Only a day and month: mm/dd.
                String month = dateParts[0];
                String day = dateParts[1];
                // Do something intelligent with the information.
                break;
            case 0:
                // Only a year: yyyy
                // Do something
            default:
                // Unexpected format. Give up!
                return null;
        }
    } catch (ParseException ex) {
        Log.e(LOG_TAG, "getAge: Couldn't parse FB date: " + birthday, ex);
        return null;
    }
于 2017-03-30T01:08:44.033 回答