Java数据格式化程序

Java数据格式化程序,java,simpledateformat,Java,Simpledateformat,我将日期格式作为格式化程序对象获取,格式为“YYYY-mm-dd hh:mm” 如何格式化输入格式化程序对象以仅获取“YYYY-mm-dd” 我得到的日期格式为 “YYYY-mm-dd hh:mm”作为格式化程序 对象如何格式化输入 仅获取格式化程序对象 “YYYY-mm-dd” 您不能将日期设置为YYYY-mm-dd它应该是yyy-mm-dd。要获取YY-MM-dd中的日期,代码如下: SimpleDateFormat formatter = new SimpleDateFormat("yyy

我将日期格式作为格式化程序对象获取,格式为
“YYYY-mm-dd hh:mm”

如何格式化输入格式化程序对象以仅获取
“YYYY-mm-dd”

我得到的日期格式为 “YYYY-mm-dd hh:mm”作为格式化程序 对象如何格式化输入 仅获取格式化程序对象 “YYYY-mm-dd”

您不能将日期设置为YYYY-mm-dd它应该是yyy-mm-dd。要获取YY-MM-dd中的日期,代码如下:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = formatter.format(todaysDate);

就是您要查找的内容。

使用
SimpleDateFormat

String myDateString = "2009-04-22 15:51";

SimpleDateFormat inFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
SimpleDateFormat outFormat = new SimpleDateFormat("yyyy-MM-dd");

System.out.println(outFormat.format(inFormat.parse(myDateString)));

如果您获得的日期格式为
“YYYY-mm-dd hh:mm”
,并且希望它为
“yyy-mm-dd”
,我建议您只使用
inputDate.substring(0,10)


在任何一种情况下,都要注意以下潜在问题:)

在Java中,示例格式化日期为yyyy MM dd

Format formatter = new SimpleDateFormat("yyyy-MM-dd");
Calendar now = Calendar.getInstance();
System.out.println("Now: "+formatter.format(now.getTime()) );
试试这个:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = formatter.format(todaysDate);
使用此代码:

Date date=new Date();

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

String formattedDate = formatter.format(date);

System.out.println("formatted time==>" + formattedDate);

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
其他答案,如答案是正确的

作为替代方案,java.util.Date/Calendar类的第三部分开源替代品包括一个内置格式,以满足您的需要

/©2013巴西尔布尔克。此源代码可以由任何对此承担全部责任的人自由使用。
//导入org.joda.time.*;
//导入org.joda.time.format.*;
字符串stringIn=“2011-04-07”;
//将完整日期的格式设置为四位数的年份、两位数的月份和两位数的月份(yyyy-MM-dd)。
DateTimeFormatter formatter=ISODateTimeFormat.date().withZone(DateTimeZone.forID(“欧洲/伦敦”)).withLocale(Locale.UK);
DateTime DateTime=formatter.parseDateTime(stringIn).withTimeAtStartOfDay();
String stringOut=formatter.print(日期时间);
转储到控制台

System.out.println(“dateTime:+dateTime.toString());
System.out.println(“stringOut:+stringOut”);
当运行时

dateTime:2011-04-07T00:00:00.000+01:00
断线:2011-04-07

是的,SimpleDataFormat是您需要的
这个问题有这么多好答案,下面是另一个更通用的解决方案

public static String getDateInFormate(String oldFormate , String newFormate , String dateToParse){
    //old "yyyy-MM-dd hh:mm"
    //new yyyy-MM-dd
    //dateTopars 2011-04-13 05:00  
    String formatedDate="";
    Format formatter = new SimpleDateFormat();
    Date date;
    try {
        date = (Date)((DateFormat) formatter).parse(dateToParse);
        formatter = new SimpleDateFormat(newFormate);
        formatedDate = formatter.format(date);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return formatedDate;    
} 

大写字母
Y
将不起作用。您还需要在第
Date-Date=(Date)formatter.parse(“2011-04-13 05:00”)行解析格式化程序。还需要用try…ctach包围它,因为它可能会抛出
ParseException
您应该接受以下答案之一作为问题的解决方案,或者在仍然没有答案的情况下更新您的问题。请注意
SimpleDateFormat
不是线程安全的,并且是常见的错误源。改用
DateTimeFormatter
public static String getDateInFormate(String oldFormate , String newFormate , String dateToParse){
    //old "yyyy-MM-dd hh:mm"
    //new yyyy-MM-dd
    //dateTopars 2011-04-13 05:00  
    String formatedDate="";
    Format formatter = new SimpleDateFormat();
    Date date;
    try {
        date = (Date)((DateFormat) formatter).parse(dateToParse);
        formatter = new SimpleDateFormat(newFormate);
        formatedDate = formatter.format(date);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return formatedDate;    
} 
 SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
                String strDate = entry_date;
                System.out.println("strDate*************"+strDate);
                Date date = null;
                try {
                    date = sdf.parse(strDate);

                } catch (ParseException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }

                DateFormat df = new SimpleDateFormat("dd/MM/yyyy");

                Date yesterday =subtractDay( date);
                String requiredDate = df.format(yesterday);
                System.out.println("110 days before*******************"+requiredDate);

public static Date subtractDay(Date date) {

        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.add(Calendar.DATE, -110);`enter code here`
        return cal.getTime();
    }