将字符串格式化为 Android 中的日期,但结果日期不正确
Formating String to Date in Android, but Result date is not OK
在应用程序中,我完成了用户使用 DAte 和 Time PickerFragments 选择一些日期和时间的操作。
选择日期时,我将其放在文本视图中。之后我需要验证用户选择的日期是否正确。我的意思是,结束日期不能早于开始日期。
为了测试转换是否正常,我已经编写了这段代码:
String start_date = (String) tv_start_date.getText();
String end_date = (String) tv_end_date.getText();
String start_hour = (String) tv_start_hour.getText();
String end_hour = (String) tv_end_hour.getText();
String auxiliar = start_date + " " + start_hour;
String auxiliar2 = end_date + " " + end_hour;
SimpleDateFormat sdf_aux = new SimpleDateFormat("dd/mm/yy hh:mm");
Date auuuux = sdf_aux.parse(auxiliar);
Date auuuux2 = sdf_aux.parse(auxiliar2);
Log.d("Meeting", "Inicio: Start--> "+auuuux.toString());
Log.d("Meeting", "FIN: END--> "+auuuux2.toString());
但是当我看到日志时,我可以看到日期不正确:
少量图片:
日志:
03-26 13:25:27.657: D/Meeting(15255): Start--> Mon Jan 26 13:25:00 CET 2015
03-26 13:25:27.657: D/Meeting(15255): END--> Tue Jan 27 14:26:00 CET 2015
如您所见,今天是 26/3/15 星期四,但是如果您看到日志,它会显示今天是星期一!
我该如何解决?
我做错了什么?
您在日期格式中输入了错误的字符串:
SimpleDateFormat sdf_aux = new SimpleDateFormat("dd/mm/yy hh:mm");
必须是:
SimpleDateFormat sdf_aux = new SimpleDateFormat("dd/MM/yy hh:mm");
因为大写的M代表月,小写的代表分钟...
编辑
要获取 24 小时格式的时间,您必须将 h 更改为 H:
SimpleDateFormat sdf_aux = new SimpleDateFormat("dd/MM/yy HH:mm");
在应用程序中,我完成了用户使用 DAte 和 Time PickerFragments 选择一些日期和时间的操作。
选择日期时,我将其放在文本视图中。之后我需要验证用户选择的日期是否正确。我的意思是,结束日期不能早于开始日期。
为了测试转换是否正常,我已经编写了这段代码:
String start_date = (String) tv_start_date.getText();
String end_date = (String) tv_end_date.getText();
String start_hour = (String) tv_start_hour.getText();
String end_hour = (String) tv_end_hour.getText();
String auxiliar = start_date + " " + start_hour;
String auxiliar2 = end_date + " " + end_hour;
SimpleDateFormat sdf_aux = new SimpleDateFormat("dd/mm/yy hh:mm");
Date auuuux = sdf_aux.parse(auxiliar);
Date auuuux2 = sdf_aux.parse(auxiliar2);
Log.d("Meeting", "Inicio: Start--> "+auuuux.toString());
Log.d("Meeting", "FIN: END--> "+auuuux2.toString());
但是当我看到日志时,我可以看到日期不正确:
少量图片:
日志:
03-26 13:25:27.657: D/Meeting(15255): Start--> Mon Jan 26 13:25:00 CET 2015
03-26 13:25:27.657: D/Meeting(15255): END--> Tue Jan 27 14:26:00 CET 2015
如您所见,今天是 26/3/15 星期四,但是如果您看到日志,它会显示今天是星期一!
我该如何解决? 我做错了什么?
您在日期格式中输入了错误的字符串:
SimpleDateFormat sdf_aux = new SimpleDateFormat("dd/mm/yy hh:mm");
必须是:
SimpleDateFormat sdf_aux = new SimpleDateFormat("dd/MM/yy hh:mm");
因为大写的M代表月,小写的代表分钟...
编辑
要获取 24 小时格式的时间,您必须将 h 更改为 H:
SimpleDateFormat sdf_aux = new SimpleDateFormat("dd/MM/yy HH:mm");