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 以(yyyy-MM-dd)格式分析字符串日期_Java_Date_Parsing - Fatal编程技术网

Java 以(yyyy-MM-dd)格式分析字符串日期

Java 以(yyyy-MM-dd)格式分析字符串日期,java,date,parsing,Java,Date,Parsing,我有一个字符串,格式为“2013-09-18”。我想将其转换为java.util.Date。 我正在这样做 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date convertedCurrentDate = sdf.parse(currentDateText); 转换后的当前日期为“2013年9月18日星期三00:00:00 IST” 我希望我的输出格式为“2013-09-18” 小时、分钟和秒不应出现,应采用yyyy-

我有一个字符串,格式为“2013-09-18”。我想将其转换为java.util.Date。 我正在这样做

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date convertedCurrentDate = sdf.parse(currentDateText);
转换后的当前日期为“2013年9月18日星期三00:00:00 IST”

我希望我的输出格式为“2013-09-18”


小时、分钟和秒不应出现,应采用yyyy-MM-dd格式。

您可能需要
将输出格式化为
如下所示

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date convertedCurrentDate = sdf.parse("2013-09-18");
String date=sdf.format(convertedCurrentDate );
System.out.println(date);
使用

输出:

2013-09-18

您正在创建日期对象,它是时间轴中某个点的表示形式。这意味着它将拥有正确表示它所需的所有部分,包括分钟和秒等。因为您从只包含部分日期的字符串初始化它,所以缺少的数据将被默认


我假设您正在“打印”这个日期对象,但没有像解析它时那样指定格式。使用与SimpleDataFormat相同的SimpleDataFormat,但调用Holger建议的相反方法format(Date)

我将字符串转换为日期格式(“yyyy-MM-dd”)以保存到Mysql数据库中

DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
String cunvertCurrentDate="06/09/2015";
Date date = new Date();
date = df.parse(cunvertCurrentDate);
 String date ="2016-05-01";
 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
 Date parsed = format.parse(date);
 java.sql.Date sql = new java.sql.Date(parsed.getTime());
sql它是我的日期格式输出

tl;博士 ……还有

myLocalDate.toString()  // Example: 2013-09-18
java.time 这个问题和其他答案都过时了。麻烦的旧遗留日期时间类现在被java.time类取代

ISO 8601 您的输入字符串恰好符合标准格式YYYY-MM-DD。在解析和生成日期时间值的字符串表示形式时,java.time类默认使用ISO 8601格式。因此,无需指定格式化模式

LocalDate
该类表示一个仅限日期的值,不包含一天中的时间和时区

LocalDate ld = LocalDate.parse( "2013-09-18" );

关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&

该项目现已启动,建议迁移到类

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是

您可以直接与数据库交换java.time对象。使用兼容的或更高版本。不需要字符串,也不需要
java.sql.*

从哪里获得java.time类

  • 然后
    • 内置的
    • 标准JavaAPI的一部分,带有捆绑实现
    • Java9添加了一些次要功能和修复
    • 大部分java.time功能都在中向后移植到Java6和Java7
    • 更高版本的Android捆绑包实现了java.time类

    • 对于早期的Android(
      parse
      用于将
      字符串
      转换为
      日期
      。相反,请使用
      格式
      +1这是问题的唯一正确答案,因为OP似乎没有基本的理解,即日期是日期,无论您如何打印它。请添加此代码的作用以及它解决问题的原因的解释。)问题。它没有回答问题,也没有解决问题(至少没有正确/完全)嗨,我如何才能以返回类型为日期(java.util.Date)的(yyyy-MM-dd)格式获取java.util.Date?您不能。A
      Date
      没有也不能有格式。默认情况下,解析是宽松的。Call
      setLenient(false)
      如果您需要禁用它-我知道它不相关,但只是为了防止您想将其转换为java.sql.Date而不是java.util.Date,这里有一种更简单的方法,可能值得展示一些.parse()的示例选项,这是原始问题的主题。@jakeblues感谢您的轻推。修改后的答案将重点放在解析仅日期的值上。
      myLocalDate.toString()  // Example: 2013-09-18
      
      LocalDate ld = LocalDate.parse( "2013-09-18" );