Java 日期返回空值

Java 日期返回空值,java,android,Java,Android,我正在构建一个带有用户列表的android应用程序,并试图从用户那里了解年龄 for (int i = 0; i < contacts.length(); i++) { JSONObject c = contacts.getJSONObject(i); String id = c.getString(TAG_ID); String name = c.getString(TAG_NAME); String user_id = c.getString(TAG_

我正在构建一个带有用户列表的android应用程序,并试图从用户那里了解年龄

for (int i = 0; i < contacts.length(); i++) {
    JSONObject c = contacts.getJSONObject(i);

    String id = c.getString(TAG_ID);
    String name = c.getString(TAG_NAME);
    String user_id = c.getString(TAG_USERID);
    String birth_date = c.getString(TAG_BIRTH_DATE);
    String pic_url_get = c.getString(TAG_IMAGE);

    int year = Integer.parseInt(birth_date.substring(0, 4));
    int month = Integer.parseInt(birth_date.substring(4, 6));
    int day = Integer.parseInt(birth_date.substring(birth_date.length() - 2));

    Calendar dateOfYourBirth = new GregorianCalendar(year, month, day);
    Calendar today = Calendar.getInstance();
    int yourAge = today.get(Calendar.YEAR) - dateOfYourBirth.get(Calendar.YEAR);
    dateOfYourBirth.add(Calendar.YEAR, yourAge);
    if (today.before(dateOfYourBirth)) {
        yourAge--;
    }        

    // tmp hashmap for single contact
    HashMap<String, String> contact = new HashMap<String, String>();

    // adding each child node to HashMap key => value
    contact.put(TAG_ID, id);
    contact.put(TAG_NAME, name);
    contact.put(TAG_BIRTH_DATE, "Age" + yourAge);
    contact.put(TAG_IMAGE, "*******/images/" + user_id + "/" + pic_url_get);


    // adding contact to contact list
    contactList.add(contact);
}
我从一个json文件中获取所有数据,我收到的生日如下:

"birth_date":"1965-05-07"
现在,我试图解析年份、月份和日期,并从用户那里获取年龄

for (int i = 0; i < contacts.length(); i++) {
    JSONObject c = contacts.getJSONObject(i);

    String id = c.getString(TAG_ID);
    String name = c.getString(TAG_NAME);
    String user_id = c.getString(TAG_USERID);
    String birth_date = c.getString(TAG_BIRTH_DATE);
    String pic_url_get = c.getString(TAG_IMAGE);

    int year = Integer.parseInt(birth_date.substring(0, 4));
    int month = Integer.parseInt(birth_date.substring(4, 6));
    int day = Integer.parseInt(birth_date.substring(birth_date.length() - 2));

    Calendar dateOfYourBirth = new GregorianCalendar(year, month, day);
    Calendar today = Calendar.getInstance();
    int yourAge = today.get(Calendar.YEAR) - dateOfYourBirth.get(Calendar.YEAR);
    dateOfYourBirth.add(Calendar.YEAR, yourAge);
    if (today.before(dateOfYourBirth)) {
        yourAge--;
    }        

    // tmp hashmap for single contact
    HashMap<String, String> contact = new HashMap<String, String>();

    // adding each child node to HashMap key => value
    contact.put(TAG_ID, id);
    contact.put(TAG_NAME, name);
    contact.put(TAG_BIRTH_DATE, "Age" + yourAge);
    contact.put(TAG_IMAGE, "*******/images/" + user_id + "/" + pic_url_get);


    // adding contact to contact list
    contactList.add(contact);
}
我如何解决这个问题?

不要重新发明:

不要重新发明:

不要重新发明:

不要重新发明:


让我们从您是否实际从用户(
json
object)获取数据开始? 你能把断点放在这根绳子上吗

birth_date = c.getString(TAG_BIRTH_DATE);

您是否获得了
生日

让我们从您是否实际从用户(
json
对象)获得了数据开始? 你能把断点放在这根绳子上吗

birth_date = c.getString(TAG_BIRTH_DATE);

您是否获得了
生日

让我们从您是否实际从用户(
json
对象)获得了数据开始? 你能把断点放在这根绳子上吗

birth_date = c.getString(TAG_BIRTH_DATE);

您是否获得了
生日

让我们从您是否实际从用户(
json
对象)获得了数据开始? 你能把断点放在这根绳子上吗

birth_date = c.getString(TAG_BIRTH_DATE);

你有生日吗?

你可以使用Android自己的日期格式化程序

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);

Date birthDate = formatter.parse(birth_date);

您可以使用Android自己的日期格式化程序

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);

Date birthDate = formatter.parse(birth_date);

您可以使用Android自己的日期格式化程序

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);

Date birthDate = formatter.parse(birth_date);

您可以使用Android自己的日期格式化程序

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);

Date birthDate = formatter.parse(birth_date);

出生日期。子字符串(4,6)
-你不是说
5,7
?你能打印出
出生日期
值吗?似乎值是
“null”
(一个值为“null”的字符串)当我打印出生日期时,我收到所有的出生日期,我没有找到空的出生日期
出生日期。子字符串(4,6)
-你不是指
5,7
?你能打印出
出生日期
值吗?似乎值是
“null”
(一个值为“null”的字符串)当我打印出生日期时,我收到所有的出生日期,我没有找到空的出生日期
出生日期。子字符串(4,6)
-你不是指
5,7
?你能打印出
出生日期
值吗?似乎值是
“null”
(一个值为“null”的字符串)当我打印出生日期时,我收到所有的出生日期,我没有找到空的出生日期
出生日期。子字符串(4,6)
-你不是指
5,7
?你能打印出
出生日期
值吗?似乎值是
“null”
(一个值为“null”的字符串)当我打印出生日期时,我收到所有的出生日期,我没有找到空的出生日期我忘记发布字符串:private static final string TAG\u birth\u date=“birth\u date”;我正在获取所有的值,当我打印这些值时,一切正常,问题是parsenti忘记发布字符串:private static final string TAG_BIRTH\u DATE=“BIRTH\u DATE”;我正在获取所有的值,当我打印这些值时,一切正常,问题是parsenti忘记发布字符串:private static final string TAG_BIRTH\u DATE=“BIRTH\u DATE”;我正在获取所有的值,当我打印这些值时,一切正常,问题是parsenti忘记发布字符串:private static final string TAG_BIRTH\u DATE=“BIRTH\u DATE”;我得到了所有的值,当我打印这些值时,一切正常,问题是parseInt