在Android上分离当前日期和时间

在Android上分离当前日期和时间,android,datetime,timestamp,Android,Datetime,Timestamp,我从谷歌那里得到了当前日期,它给了我这样的回复: date = **"Tue, 17 Mar 2020 12:37:44 GMT"** 但是我只想要日期,所以我正在转换时间戳,但是我无法得到想要的结果 我在onCreate()方法中有以下代码: 进入getTime()方法后,应用程序没有向我展示结果。代码如下: private void getTime() { String timeStampST = timeStamp; SimpleDateFormat fm

我从谷歌那里得到了当前日期,它给了我这样的回复:

date = **"Tue, 17 Mar 2020 12:37:44 GMT"**
但是我只想要日期,所以我正在转换时间戳,但是我无法得到想要的结果

我在onCreate()方法中有以下代码:

进入getTime()方法后,应用程序没有向我展示结果。代码如下:

private void getTime() {
        String timeStampST = timeStamp;
        SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = null;
        String resultDate = null;
        try {
            date = fmt.parse(timeStampST);
            SimpleDateFormat fmtOut = new SimpleDateFormat("EEE MMM dd yyyy");
            resultDate = fmtOut.format(date);
            Toast.makeText(this, resultDate, Toast.LENGTH_SHORT).show();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
注意:我想得到这样的日期

日期:2020年3月17日星期二

这就是为什么我要转换时间戳,但它不起作用

 String arrDate[] = date.split(" ");
 String  newDate = arrDate[0]+" "+ arrDate[1] + " " + arrDate[2] +" "+arrDate[3];

如果每次都收到相同的日期格式,则使用空格拆分字符串,将获得数组数据。获得数组数据后,根据需要加入数组索引。这将很好,但这不是转换日期的正确代码。

在我的问题中,我使用的方法在getTime方法中是不正确的,因此我现在在getTime方法中所做的工作如下所述 首先,我得到时间戳值。您可以通过在谷歌上编写将时间戳转换为日期来获得它。打开第一个链接并获取时间戳值

getTime()方法中,您只需创建一个日历对象并在其上设置时间戳数据。您将把时间戳数据放入日历对象中,您可以使用DateFormat.format将其转换为字符串。像这样:

long timeStampValue = 1584517882L;
Calendar cal = Calendar.getInstance(Locale.ENGLISH);
cal.setTimeInMillis(timeStampValue * 1000L);
String date = DateFormat.format("yyyy-MM-dd", cal).toString();
Log.d("date: ", date);

这是什么?我应该在哪里使用它?虽然这段代码可以解决这个问题,但如何以及为什么解决这个问题将真正有助于提高您的帖子质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请编辑您的答案以添加解释,并说明适用的限制和假设。如果您每次都收到相同的日期格式,则使用空格拆分字符串,您将获得数组数据。在获得数组数据后,您可以根据需要加入数组索引。这可以正常工作,但这不是用于转换的正确代码日期。您是否收到任何异常或错误消息?请粘贴到你的问题中。此外,如果谷歌的字符串是GMT(如在示例中),您是否希望在GMT或其他时区的日期?作为一个旁白,考虑扔掉长期过时和臭名昭著的麻烦<代码> SimpleDateFormat < /C>和朋友,并添加到Android项目中,以便使用JavaTime-现代java日期和时间API。使用它更好。我想从google获取日期,它什么都不给我,然后关闭程序。如果我烤了某个东西,它会使应用程序崩溃,你可以烤一烤,因为你不在UI线程中。当我阅读你的代码时,我确信在
getTime()中会抛出一个异常
并以相同的方法在
catch
块中捕获。如果在
e.printStackTrace()中看不到堆栈跟踪,您的项目设置中有一个严重缺陷,您需要首先修复该缺陷,然后我们才能帮助您解决该异常。只要你看不到程序中的错误信息,你就是蒙着眼睛编码。@OleV.V。如果您要从e.printStackTrace()请求堆栈跟踪;它给了我一个例外(不可解析的日期(偏移量为0))
long timeStampValue = 1584517882L;
Calendar cal = Calendar.getInstance(Locale.ENGLISH);
cal.setTimeInMillis(timeStampValue * 1000L);
String date = DateFormat.format("yyyy-MM-dd", cal).toString();
Log.d("date: ", date);