Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Joda时间无效格式_Android_Jodatime - Fatal编程技术网

Android Joda时间无效格式

Android Joda时间无效格式,android,jodatime,Android,Jodatime,我尝试使用Joda时间执行此代码时出错: // yyyy-mm-dd, also tried 17-Feb-2013 String input = "2013-02-17"; DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy"); DateTime dt = formatter.parseDateTime(input); TextView tv = (TextView) findViewById(R.id.

我尝试使用Joda时间执行此代码时出错:

// yyyy-mm-dd, also tried 17-Feb-2013
String input = "2013-02-17";

DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy");
DateTime dt = formatter.parseDateTime(input);

TextView tv = (TextView) findViewById(R.id.tvShow);
tv.setText("HERE >>> " + dt.toString());
有什么想法吗

logcat说:

03-18 16:58:14.919: W/System.err(8259): java.lang.IllegalArgumentException: Invalid format: "2013-02-17" is malformed at "13-02-17"
03-18 16:58:14.919: W/System.err(8259):     at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:871)
03-18 16:58:14.919: W/System.err(8259):     at com.example.dateformatter.MainActivity.onCreate(MainActivity.java:42)
03-18 16:58:14.919: W/System.err(8259):     at android.app.Activity.performCreate(Activity.java:5163)
03-18 16:58:14.919: W/System.err(8259):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
03-18 16:58:14.919: W/System.err(8259):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2061)
03-18 16:58:14.919: W/System.err(8259):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2122)
03-18 16:58:14.919: W/System.err(8259):     at android.app.ActivityThread.access$600(ActivityThread.java:140)
03-18 16:58:14.919: W/System.err(8259):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1228)
03-18 16:58:14.927: W/System.err(8259):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-18 16:58:14.927: W/System.err(8259):     at android.os.Looper.loop(Looper.java:137)
03-18 16:58:14.927: W/System.err(8259):     at android.app.ActivityThread.main(ActivityThread.java:4895)
03-18 16:58:14.927: W/System.err(8259):     at java.lang.reflect.Method.invokeNative(Native Method)
03-18 16:58:14.927: W/System.err(8259):     at java.lang.reflect.Method.invoke(Method.java:511)
03-18 16:58:14.927: W/System.err(8259):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994)
03-18 16:58:14.927: W/System.err(8259):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
03-18 16:58:14.927: W/System.err(8259):     at dalvik.system.NativeStart.main(Native Method)
03-18 16:58:14.950: D/KeyguardViewMediator(357): setHidden false
您要求它将“2013-02-17”解析为“dd/MM/yyyy”格式,但显然不是这样

您需要指定
yyyy-MM-dd
作为模式:

DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd");
或者,如果您需要
dd/MM/yyyy
作为模式,则需要为其提供该格式的文本,例如

String input = "17/02/2013";
无论哪种方式,您提供的数据都必须与您指定的格式相匹配。毕竟,这就是指定格式的全部要点

有关格式模式中的各种字母的含义,请参见文档。

您要求它将“2013-02-17”解析为“dd/MM/yyyy”格式,但显然不是

您需要指定
yyyy-MM-dd
作为模式:

DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd");
或者,如果您需要
dd/MM/yyyy
作为模式,则需要为其提供该格式的文本,例如

String input = "17/02/2013";
无论哪种方式,您提供的数据都必须与您指定的格式相匹配。毕竟,这就是指定格式的全部要点


有关格式模式中各种字母的含义,请参见文档。

如果输入错误的日期格式,请尝试此代码

String input = "17/02/2013";

DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy");
DateTime dt = formatter.parseDateTime(input);

如果输入错误的日期格式,请尝试此代码

String input = "17/02/2013";

DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy");
DateTime dt = formatter.parseDateTime(input);

你不应该在格式上造成混乱

选项1

字符串输入=“
2013-02-17

DateTimeFormatter formatter=DateTimeFormat.forPattern(“
yyyy-MM-dd
”); DateTime dt=格式化程序.parseDateTime(输入)

TextView电视=(TextView)findViewById(R.id.tvShow); tv.setText(“此处>>>”+dt.toString())

选项2

字符串输入=“
17/02/2013

DateTimeFormatter formatter=DateTimeFormat.forPattern(“
dd/MM/yyyy
”); DateTime dt=格式化程序.parseDateTime(输入)

TextView电视=(TextView)findViewById(R.id.tvShow);
tv.setText(“此处>>>”+dt.toString())

您不应该在格式上造成混乱

选项1

字符串输入=“
2013-02-17

DateTimeFormatter formatter=DateTimeFormat.forPattern(“
yyyy-MM-dd
”); DateTime dt=格式化程序.parseDateTime(输入)

TextView电视=(TextView)findViewById(R.id.tvShow); tv.setText(“此处>>>”+dt.toString())

选项2

字符串输入=“
17/02/2013

DateTimeFormatter formatter=DateTimeFormat.forPattern(“
dd/MM/yyyy
”); DateTime dt=格式化程序.parseDateTime(输入)

TextView电视=(TextView)findViewById(R.id.tvShow);
tv.setText(“此处>>>”+dt.toString())

顺便说一句,这与Android或Eclipse无关。顺便说一句,这与Android或Eclipse无关。这也会失败,因为“-”和“/”不一样。@JonSkeet感谢通知我的错误,现在我更新我的答案,并为小错误道歉!!!这也会失败,因为“-”和“/”不一样。@JonSkeet谢谢你通知我的错误,现在我更新我的答案,并为我的小错误道歉!!!