簡體   English   中英

解析中的日期數據類型

[英]Date datatype in parse

我正在嘗試將日期數據類型發送到Parse.com數據庫。 我既無法發送數據,也無法收到任何應用崩潰消息,不確定發生了什么。

這是代碼。

   buttonPlacebet.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            ParseUser currentUser = ParseUser.getCurrentUser();
          /**  if (currentUser != null)
            {

            }
            else
            {
                // show the signup or login screen
            } **/

            final String Betname = etBetName.getText().toString().trim();
            final  String BetDescription = etDescription.getText().toString().trim();
            final int Betvalue = seekBarValue.getProgress();
            final String Cat1 = cat1.getSelectedItem().toString();
            final String Cat2 = cat2.getSelectedItem().toString();

            String endDate = textEndDate.getText().toString();

            // = "03/26/2012 11:49:00 AM";
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            Date convertedDate = new Date();
            try {
                convertedDate = dateFormat.parse(endDate);
                actualendDate = convertedDate;
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            Log.d(TAG, "onCreate() Restoring previous state");
            ParseObject bets = new ParseObject("Bets");
            bets.put("BetName", Betname);
            bets.put("BetDescription", BetDescription);

            bets.put("BetValue",Betvalue);
            if(cbPvtbet.isChecked())
            {
                bets.put("PrivateBet","True");
            }
            else
            {
                bets.put("PrivateBet","False");
            }
            if(cbReal.isChecked())
            {
                bets.put("RealBet","True");
            }
            else
            {
                bets.put("RealBet","False");
            }

            bets.put("Cat1",Cat1);
            bets.put("Cat2",Cat2);

            endDate = actualendDate.toString();

            bets.put("EndDate",actualendDate);

            bets.saveInBackground();
        }
    });

}

我猜想我在日期數據類型上做錯了什么,而不能正確地轉換/解析。 ks

添加Log cat(當我按下按鈕時是正確的),但是坦率地說,logcat中實際上沒有任何顯示。

05-30 21:49:25.652: E/AndroidRuntime(27738): FATAL EXCEPTION: main
05-30 21:49:25.652: E/AndroidRuntime(27738): Process: com.techiequickie.bharath.betonanything, PID: 27738
05-30 21:49:25.652: E/AndroidRuntime(27738): java.lang.NullPointerException
05-30 21:49:25.652: E/AndroidRuntime(27738):    at com.techiequickie.bharath.betonanything.NewBet$1.onClick(NewBet.java:136)
05-30 21:49:25.652: E/AndroidRuntime(27738):    at android.view.View.performClick(View.java:4480)
05-30 21:49:25.652: E/AndroidRuntime(27738):    at android.view.View$PerformClick.run(View.java:18686)
05-30 21:49:25.652: E/AndroidRuntime(27738):    at android.os.Handler.handleCallback(Handler.java:733)
05-30 21:49:25.652: E/AndroidRuntime(27738):    at android.os.Handler.dispatchMessage(Handler.java:95)
05-30 21:49:25.652: E/AndroidRuntime(27738):    at android.os.Looper.loop(Looper.java:157)
05-30 21:49:25.652: E/AndroidRuntime(27738):    at android.app.ActivityThread.main(ActivityThread.java:5872)
05-30 21:49:25.652: E/AndroidRuntime(27738):    at java.lang.reflect.Method.invokeNative(Native Method)
05-30 21:49:25.652: E/AndroidRuntime(27738):    at java.lang.reflect.Method.invoke(Method.java:515)
05-30 21:49:25.652: E/AndroidRuntime(27738):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
05-30 21:49:25.652: E/AndroidRuntime(27738):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:674)
05-30 21:49:25.652: E/AndroidRuntime(27738):    at dalvik.system.NativeStart.main(Native Method)

如您的日志所示, NullPointerException請嘗試查看所有變量,尤其是在actualendDate上,因為您嘗試使用從字符串輸入中解析的日期來初始化它。 這是所有發生錯誤的地方。

查看您的示例日期輸入: "03/26/2012 11:49:00 AM" ,並將其與您為SimpleDateFormat提供的模式: "yyyy-MM-dd" 他們是完全不同的。 這就是為什么ParseException升高且您的actualendDate未初始化並引用Null的原因

因此,解決方案是查看SimpleDateFormat文檔並進行更改

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

SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM