null使用简单日期格式解析日期时的指针异常

时间:2018-05-20 16:17:50

标签: android date firebase nullpointerexception datetime-parsing

我将String转换为日期时遇到问题,它给了我一个空指针异常,我已经尝试了所有内容。

这是我从calendarView

将我的String输入数据库的方法
mCalendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
        @Override
        public void onSelectedDayChange(@NonNull CalendarView calendarView, int i, int i1, int i2) {
            string = (i1 + 1) + "/" +i2 + "/" + i;
}
        });

String key = mDatabase.push().getKey();

                HashMap<String, String> dataMap = new HashMap<>();
                dataMap.put("Date", date);
                dataMap.put("Key", key);
 mDatabase.child(key).setValue(dataMap);

然后当我从我的数据库中检索它时,我将其格式化为

databaseReference = FirebaseDatabase.getInstance().getReference().child("Groups").child("JMHyOvgCDvdKEZuReJvdGcExEnX2").child("HomeFragment").child("FreezerItems");
        valueEventListener = new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                HashMap<String, String> value = (HashMap<String,String>) dataSnapshot.getValue();
                if (value != null){
                    String name = value.get("Name");
                    String date = value.get("Date");

                    try {
                        dateFormat = new Date();
                        dateFormat = new SimpleDateFormat("M/dd/yyyy", Locale.US).parse(date);

                    } catch (ParseException e) {
                        Log.wtf("FailedtoChangeDate", "Fail");
                    }

我的问题是当我尝试将字符串转换为M / dd / yyyy格式时,即使字符串中的日期格式是这样的&#34; 5/30/2018&#34;

调试

时的屏幕截图

2 个答案:

答案 0 :(得分:1)

更新我的回答: -

您的日期输入 05/20/2018

String input_date = "05/20/2018";  
SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy");  
try {  
    Date date = format.parse(input_date );  
    System.out.println(date);  
} catch (ParseException e) {
    e.printStackTrace();  
}

答案 1 :(得分:0)

您的屏幕截图非常有用。它显示value为名称和日期返回null。因此,您尝试从此地图中取出的值不在此处。这就是为什么datenull而你获得NullPointerException

的原因

为什么地图中没有日期(也没有名称)位于我们在问题中可以看到的代码之外,所以我无法分辨。