我有一个表示日期的字符串。
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。我做错了什么?
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);
};
答案当然是创建一个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));
}
}