Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建一个函数,该函数接受字符串对象并以dd-MM-yyyy格式返回日期对象_Java_Date_Date Formatting - Fatal编程技术网

Java 创建一个函数,该函数接受字符串对象并以dd-MM-yyyy格式返回日期对象

Java 创建一个函数,该函数接受字符串对象并以dd-MM-yyyy格式返回日期对象,java,date,date-formatting,Java,Date,Date Formatting,我在字符串对象中有日期。我想转换成日期对象 Date getDateFmString(String dateString) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date convertedCurrentDate = sdf.parse(dateString); return convertedCurrentDate ; } 上述函数返回以下输出 Fri Apr 22 00:00:00 IST 201

我在字符串对象中有日期。我想转换成日期对象

Date getDateFmString(String dateString)
{

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 Date convertedCurrentDate = sdf.parse(dateString);
 return convertedCurrentDate ;
}
上述函数返回以下输出

 Fri Apr 22 00:00:00 IST 2016
  • 但我只希望以这种格式“2016-03-01”输出
  • 函数应该只接受字符串。
  • 函数应返回日期对象。

将日期格式从

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


希望这能起作用

您正在使用错误的格式进行解析,请尝试

String dateString="01-01-2016";
SimpleDateFormat sdfP = new SimpleDateFormat("dd-MM-yyyy");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date convertedCurrentDate = sdfP .parse(dateString);
String date=sdf.format(convertedCurrentDate );
System.out.println(date);
输出:

2016-01-01
01-01-2016

如果希望格式为
dd MM yyyy
,则无需定义单独的
SimpleDateFormat
对象

String dateString="01-01-2016";
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
Date convertedCurrentDate = sdf.parse(dateString);
String date=sdf.format(convertedCurrentDate );
System.out.println(date);
输出:

2016-01-01
01-01-2016

要设置字符串日期的格式,必须首先使用与字符串相同的日期格式解析字符串To date对象,然后使用上述代码中所示的所需格式对其进行格式化。

参见此示例

public Class DateFormatDemo{ 

public static void main (String args[]) {

SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy);
String dateInString = "01/01/2015";

try{

Date date = formatter.parse(dateInString);
System.out.println(date);
System.out.println(formatter.format(date)); 

}catch(ParseException e){
e.printStackTrace();
}
}
}

这可能会帮助您进行字符串到日期的对象转换

日期
对象没有格式。只有
字符串
可以。
一个
日期
对象将以您告诉它的格式输出。这完全取决于调用
.format()
DateFormat
对象的格式。在
Date
对象上调用
toString()
方法使用
DateFormat
“dow mon dd hh:mm:ss zzz yyyy”
让我们一步一步来做:

  • 您有一个dd-MM-yyy格式的日期字符串
  • 你想把它转换成日期。(为此,您使用的是SimpleDataFormat)
  • 现在您正在打印日期。这里的问题是您是否正在打印转换的日期对象或输入字符串? 如果它是一个日期对象,则调用date类的toString方法
  • 根据java.util.Date类上的注释,它是:

    dow mon dd hh:mm:ss zzz yyyy
    similar to
    Fri Apr 22 00:00:00 IST 2016
    
    因此,这与第二种方法的输出一致。但奇怪的是,代码是如何运行的

    String inputStr = "11-11-2012";
    DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
    Date inputDate = dateFormat.parse(input);
    
    未定义变量“输入”。

    可能的解决方案有哪些:

  • 打印日期时,根据需要使用SimpleDataFormat将其转换回字符串

    Date d =new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String dStr = sdf.format(dateString);
    System.out.printn(dStr);
    
  • 扩展类java.util.Date并重写toString,但这不是一个好主意

  • 我在网上做了很多研究,但我从一位专家那里得到了解决方案

      Date getDateFrmString(String dDate)
      {       
    
        java.sql.Date dDate  = new java.sql.Date(new SimpleDateFormat("yyyy-MM-dd").parse(sDate).getTime());
        return dDate;
      }  
    

    这就是我想要的。

    它的格式不是已经正确了吗?这是字符串对象,我想要它在日期对象中,但它的用途是什么?是否要验证字符串的格式?我必须编写一个函数,该函数接受字符串并以dd-MM-YYYY格式返回日期对象集查看此dup:问题说明输出应格式化为
    dd-MM-YYYY
    我需要日期对象中的格式,而不是字符串中的格式object@shimbushambu日期没有任何格式检查,您必须使用大写
    MM
    表示一个月。否则,小的
    mm
    代表分钟。我还是像这样,2016年1月22日星期五00:04:00,必须是mm。我想写一个函数,接受字符串并以dd-mm-yyyy格式返回日期。@shimbushambu你的评论毫无意义。日期是一个对象,字符串是可以应用格式的地方。因此,您需要将日期转换为字符串才能显示它。否则Date类将使用您已经看到的默认值。