将字符串转换为日期然后格式化日期
我正在使用代码将字符串格式化为日期
String start_dt = '2011-01-01'; DateFormat formatter = new SimpleDateFormat("YYYY-MM-DD"); Date date = (Date)formatter.parse(start_dt);
但是如何将日期从YYYY-MM-DD
格式转换为MM-DD-YYYY
格式?
使用SimpleDateFormat #format(日期) :
String start_dt = "2011-01-01"; DateFormat formatter = new SimpleDateFormat("yyyy-MM-DD"); Date date = (Date)formatter.parse(start_dt); SimpleDateFormat newFormat = new SimpleDateFormat("MM-dd-yyyy"); String finalString = newFormat.format(date);
String start_dt = "2011-01-31"; DateFormat parser = new SimpleDateFormat("yyyy-MM-dd"); Date date = (Date) parser.parse(start_dt); DateFormat formatter = new SimpleDateFormat("MM-dd-yyyy"); System.out.println(formatter.format(date));
印刷品:01-31-2011
测试了这段代码
java.text.DateFormat formatter = new java.text.SimpleDateFormat("MM-dd-yyyy"); java.util.Date newDate = new java.util.Date(); System.out.println(formatter.format(newDate ));
http://download.oracle.com/javase/1,5.0/docs/api/java/text/SimpleDateFormat.html
String myFormat= "yyyy-MM-dd"; String finalString = ""; try { DateFormat formatter = new SimpleDateFormat("yyyy MMM dd"); Date date = (Date) formatter .parse("2015 Oct 09"); SimpleDateFormat newFormat = new SimpleDateFormat(myFormat); finalString= newFormat .format(date ); newDate.setText(finalString); } catch (Exception e) { }
如需更多参考,请点击此处http://androiddhina.blogspot.in/2015/10/convert-string-to-date-format.html
TL;博士
LocalDate.parse( "2011-01-01" ) .format( DateTimeFormatter.ofPattern( "MM-dd-uuuu" ) )
java.time
其他答案现在已经过时了。 麻烦的旧日期时间类,如java.util.Date
, java.util.Calendar
和java.text.SimpleDateFormat
现在是遗留的 ,取而代之的是java.time类。
ISO 8601
输入字符串2011-01-01
恰好符合日期时间文本的ISO 8601标准格式。 在解析/生成字符串时,java.time类在默认情况下使用这些标准格式。 因此无需指定格式化模式。
LocalDate
LocalDate
类表示没有时间且没有时区的仅日期值。
LocalDate ld = LocalDate.parse( "2011-01-01" ) ;
通过调用toString
以相同的格式生成String。
String output = ld.toString() ;
2011-01-01
DateTimeFormatter
要解析/生成其他格式,请使用DateTimeFormatter
。
DateTimeFormatter f = DateTimeFormatter.ofPattern( "MM-dd-uuuu" ) ; String output = ld.format( f ) ;
2011年1月1日
关于java.time
java.time框架内置于Java 8及更高版本中。 这些类取代了麻烦的旧遗留日期时间类,如java.util.Date
, Calendar
和SimpleDateFormat
。
现在处于维护模式的Joda-Time项目建议迁移到java.time类。
要了解更多信息,请参阅Oracle教程 。 并搜索Stack Overflow以获取许多示例和解释。 规范是JSR 310 。
从哪里获取java.time类?
- Java SE 8 , Java SE 9及更高版本
- 内置。
- 带有捆绑实现的标准Java API的一部分。
- Java 9增加了一些小function和修复。
- Java SE 6和Java SE 7
- 许多java.timefunction都被反向移植到ThreeTen-Backport中的 Java 6和7。
- Android的
- ThreeTenABP项目特别适用于Android的ThreeTen-Backport (如上所述)。
- 请参见如何使用ThreeTenABP ….
ThreeTen-Extra项目使用其他类扩展了java.time。 该项目是未来可能添加到java.time的试验场。 您可以在这里找到一些有用的课程,如Interval
, YearWeek
, YearQuarter
等。
在一行中:
String date=new SimpleDateFormat("MM-dd-yyyy").format(new SimpleDateFormat("yyyy-MM-dd").parse("2011-01-01"));
哪里:
String date=new SimpleDateFormat("FinalFormat").format(new SimpleDateFormat("InitialFormat").parse("StringDate"));
String start_dt = "2011-01-01"; // Input String SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); // Existing Pattern Date getStartDt = formatter.parse(start_dt); //Returns Date Format according to existing pattern SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM-dd-yyyy");// New Pattern String formattedDate = simpleDateFormat.format(getStartDt); // Format given String to new pattern System.out.println(formattedDate); //outputs: 01-01-2011