【问题标题】:How to convert string to date format and return type must be date如何将字符串转换为日期格式,返回类型必须是日期
【发布时间】:2016-10-26 13:52:23
【问题描述】:

我写了以下代码:

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 这样的输出,但它必须返回/存储到日期变量中

我怎样才能用日期类型返回它?

【问题讨论】:

    标签: android date simpledateformat date-formatting


    【解决方案1】:

    见下文。这对我有用。

     String dateString = "26-10-2016";
            convertDateFormat(dateString);
    
     private Date convertDateFormat(String data) {
        try {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy");
            Date date = simpleDateFormat.parse(data);
            Log.d(TAG," test==>"+date);
            return date;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
    

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

    【讨论】:

    • 我已经提到我可以获取字符串中的日期,但我希望作为返回类型日期并存储到日期变量中。
    • 我根据您的要求更新了我的答案@deepak。
    • 我已经看到您的输出与使用日期变量得到的输出相同。我想要日期变量格式为“dd-MM-yyyy”的日期
    • 帮我比较两个日期。
    【解决方案2】:

    在这里你可以找到两个函数,可以将毫秒转换为日期,将日期转换为毫秒

    千位到日期格式。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-28
      • 1970-01-01
      • 2015-07-13
      • 2021-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多