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";
    }
}