Java 以(yyyy-MM-dd)格式分析字符串日期
我有一个字符串,格式为“2013-09-18”。我想将其转换为java.util.Date。 我正在这样做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-
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格式
没有也不能有格式。默认情况下,解析是宽松的。CallDate
如果您需要禁用它-我知道它不相关,但只是为了防止您想将其转换为java.sql.Date而不是java.util.Date,这里有一种更简单的方法,可能值得展示一些.parse()的示例选项,这是原始问题的主题。@jakeblues感谢您的轻推。修改后的答案将重点放在解析仅日期的值上。setLenient(false)
myLocalDate.toString() // Example: 2013-09-18
LocalDate ld = LocalDate.parse( "2013-09-18" );