Android 显示24小时发行的日期
我正在使用一个简单的应用程序,在那里我可以获取当前的Android 显示24小时发行的日期,android,datetime,android-date,Android,Datetime,Android Date,我正在使用一个简单的应用程序,在那里我可以获取当前的DateTime,并将其转换为24小时格式 代码: 问题: 它在我的设备上运行得非常好三星Galaxy S3(安卓4.3)、S4(安卓4.3)和Nexus 5(安卓4.4)。我在华为Ascend Y330设备(安卓4.2.2)上运行的代码与我在该设备上运行的代码相同,但显示不正确 三星Galaxy S3、S4和Nexus 5中的屏幕截图: 华为Ascend Y330中的屏幕截图: 那么,问题到底是什么?我不明白。是安卓系统问题吗?还是设备问
DateTime
,并将其转换为24小时格式
代码:
问题:
它在我的设备上运行得非常好三星Galaxy S3(安卓4.3)、S4(安卓4.3)和Nexus 5(安卓4.4)
。我在华为Ascend Y330设备(安卓4.2.2)上运行的代码与我在该设备上运行的代码相同,但显示不正确
三星Galaxy S3、S4和Nexus 5中的屏幕截图:
华为Ascend Y330中的屏幕截图:
那么,问题到底是什么?我不明白。是安卓系统问题吗?还是设备问题
任何人都知道。试试这个
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date());
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
TextView tv=(TextView)findViewById(R.id.textView);
tv.append("\n in 12-hour format: " +sdf);
tv.append("\n in 24 -hour format: " +sdf2);
根据SimpleDateFormat
可以处理24小时格式的“H”,但DateFormat
需要“k”
使用文字“H”(与SimpleDataFormat和兼容)
Unicode)或“k”(用于与Android版本兼容,最新版本和
包括果冻豆(MR-1)。请注意,这两个是
不相容
因此建议使用DateFormat代替。有关这两个类之间差异的更多解释,请查看。这适用于所有设备
static final SimpleDateFormat IN_DATE_FORMAT = new SimpleDateFormat("HH:mm:ss", Locale.US);
static final SimpleDateFormat OUT_DATE_FORMAT = new SimpleDateFormat("hh:mma", Locale.US);
/**
* To format the time.
*
* @param strDate The input date in HH:mm:ss format.
* @return The output date in hh:mma format.
*/
private String formatTime(String strDate) {
try {
Date date = IN_DATE_FORMAT.parse(strDate);
return OUT_DATE_FORMAT.format(date);
} catch (Exception e) {
return "N/A";
}
}
使用以下方法:formatTime(您的时间)
您是否仅在华为Ascend Y330上存在此问题?您是否尝试使用而不是DateFormat(如所述)?@Skizo仅在华为Ascend Y330
特定设备中使用,而在所有其他5种设备中都能完美工作devices@heRoy好的,等等,让我试试……试着使用@heRoy说的SimpleDataFormat
,然后告诉我们它是否有效,如果不是因为设备问题…@MD我不知道@heRoy已经在评论中告诉你使用SimpleDateFormat
,否则我不会发布答案。当时可能正在写答案。
static final SimpleDateFormat IN_DATE_FORMAT = new SimpleDateFormat("HH:mm:ss", Locale.US);
static final SimpleDateFormat OUT_DATE_FORMAT = new SimpleDateFormat("hh:mma", Locale.US);
/**
* To format the time.
*
* @param strDate The input date in HH:mm:ss format.
* @return The output date in hh:mma format.
*/
private String formatTime(String strDate) {
try {
Date date = IN_DATE_FORMAT.parse(strDate);
return OUT_DATE_FORMAT.format(date);
} catch (Exception e) {
return "N/A";
}
}