如何将字符串转换为日期格式和返回类型必须是日期

时间:2016-10-26 13:52:24

标签: android date simpledateformat date-formatting

我写了以下代码:

Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);

String newDAte = String.valueOf(day) + "-" + String.valueOf(month + 1) + "-" + String.valueOf(year);

SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");

try {

    Date d = dateFormat.parse(newDAte);
    System.out.println("DATE" + d);
    System.out.println("Formated" + dateFormat.format(d));

    d = dateFormat.parse(String.valueOf(d));

    Toast.makeText(MainActivity.this, String.valueOf(d), Toast.LENGTH_SHORT).show();

} catch (Exception e) {

    System.out.println("Excep" + e);
}

当我举杯时,它会显示wednesday spetember 10 2016 ...

之类的日期

现在,当我将其转换为字符串时,它显示出完美的输出:26-10-2016

String sdate = String.valueOf(dateFormat.format(d))

但它是作为字符串返回,我希望作为日期类型,如:

Date newD = dateFormat.format(d);

但它没有用。

我想要输出26-10-2016,但它必须返回/存储到Date变量

如何以日期类型返回?

2 个答案:

答案 0 :(得分:1)

见下文。这对我有用。

Index

输出:test ==> test ==> Wed Oct 26 00:00:00 GMT + 05:30 2016(日期格式)

答案 1 :(得分:0)

在这里你可以找到两个可以将毫安转换为日期和日期到毫米的函数

Milles to Date格式。

private String convetTimeStamp(String time) {
    Calendar cal = Calendar.getInstance();
    long Time = Long.parseLong(time);
    cal.setTimeInMillis(Time * 1000);
    String date = DateFormat.format("dd-MM-yyyy  hh:mm a", cal).toString();

    return date;
}

如果你不想要时间,只需删除hh:mm a

日期到百万

private long dateToMillies(String time)
{
    Date date = null;

    try {
        SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
        formatter.setLenient(false);
        date = formatter.parse(time);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return (date.getTime()/1000);
}