我有一个表示日期的字符串。

String date_s = "2011-01-18 00:00:00.0";

我想把它转换成一个日期,并以YYYY-MM-DD格式输出。

2011-01-18

我怎样才能做到这一点呢?


好吧,根据我在下面找到的答案,以下是我尝试过的一些方法:

String date_s = " 2011-01-18 00:00:00.0"; 
SimpleDateFormat dt = new SimpleDateFormat("yyyyy-mm-dd hh:mm:ss"); 
Date date = dt.parse(date_s); 
SimpleDateFormat dt1 = new SimpleDateFormat("yyyyy-mm-dd");
System.out.println(dt1.format(date));

但是它输出02011-00-1而不是所需的2011-01-18。我做错了什么?


当前回答

我们可以将今天的日期转换为“2020年6月12日”的格式。

String.valueOf(DateFormat.getDateInstance().format(new Date())));

其他回答

private SimpleDateFormat dataFormat = new SimpleDateFormat("dd/MM/yyyy");

@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    if(value instanceof Date) {
        value = dataFormat.format(value);
    }
    return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
};

假设您想将2019-12-20 10:50 AM GMT+6:00更改为2019-12-20 10:50 AM 首先,你们要理解日期格式首先,日期格式是 yyyy-MM-dd hh:mm a zzz和第二个日期格式将是yyyy-MM-dd hh:mm a

只要从这个函数返回一个字符串。

public String convertToOnlyDate(String currentDate) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm a ");
    Date date;
    String dateString = "";
    try {
        date = dateFormat.parse(currentDate);
        System.out.println(date.toString()); 

        dateString = dateFormat.format(date);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return dateString;
}

这个函数将返回您想要的答案。如果你想自定义更多,只需从日期格式中添加或删除组件。

你错了: SimpleDateFormat dt1 = new SimpleDateFormat("yyyyy-mm-dd");

第一: 应该是 新SimpleDateFormat(“yyyy-mm-dd”); //yyyy 4而不是5 这个显示02011,但是yyyy显示2011

第二: 像这样更改代码 新SimpleDateFormat(“yyyy-MM-dd”);

希望能帮到你

答案当然是创建一个SimpleDateFormat对象,并使用它来解析“字符串到日期”并将“日期到字符串”格式化。如果您已经尝试了SimpleDateFormat,它没有工作,那么请显示您的代码和您可能收到的任何错误。

附录:String格式中的“mm”与“mm”不一样。用MM表示月,用MM表示分钟。另外,yyyyy和yyyy也不一样。例如,:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class FormateDate {

    public static void main(String[] args) throws ParseException {
        String date_s = "2011-01-18 00:00:00.0";

        // *** note that it's "yyyy-MM-dd hh:mm:ss" not "yyyy-mm-dd hh:mm:ss"  
        SimpleDateFormat dt = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        Date date = dt.parse(date_s);

        // *** same for the format String below
        SimpleDateFormat dt1 = new SimpleDateFormat("yyyy-MM-dd");
        System.out.println(dt1.format(date));
    }

}

从格式中删除一个y:

SimpleDateFormat dt1 = new SimpleDateFormat("yyyyy-mm-dd");

它应该是:

SimpleDateFormat dt1 = new SimpleDateFormat("yyyy-mm-dd");