我使用代码
将字符串格式化为日期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
格式?
答案 0 :(得分:35)
使用SimpleDateFormat#format(Date):
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);
答案 1 :(得分:3)
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
答案 2 :(得分:1)
测试了这段代码
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
答案 3 :(得分:1)
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
答案 4 :(得分:1)
LocalDate.parse( "2011-01-01" )
.format( DateTimeFormatter.ofPattern( "MM-dd-uuuu" ) )
其他答案现已过时。麻烦的旧日期时间类,例如java.util.Date
,java.util.Calendar
和java.text.SimpleDateFormat
现在是legacy,由java.time类取代。
输入字符串2011-01-01
恰好符合日期时间文本的ISO 8601标准格式。在解析/生成字符串时,java.time类默认使用这些标准格式。因此无需指定格式化模式。
LocalDate
LocalDate
类表示没有时间且没有时区的仅限日期的值。
LocalDate ld = LocalDate.parse( "2011-01-01" ) ;
通过调用toString
生成相同格式的字符串。
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 8及更高版本中。这些类取代了麻烦的旧legacy日期时间类,例如java.util.Date
,Calendar
和& SimpleDateFormat
现在位于Joda-Time的maintenance mode项目建议迁移到java.time类。
要了解详情,请参阅Oracle Tutorial。并搜索Stack Overflow以获取许多示例和解释。规范是JSR 310。
从哪里获取java.time类?
ThreeTen-Extra项目使用其他类扩展java.time。该项目是未来可能添加到java.time的试验场。您可以在此处找到一些有用的课程,例如Interval
,YearWeek
,YearQuarter
和more。
答案 5 :(得分:0)
在一行中:
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"));
答案 6 :(得分:0)
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
答案 7 :(得分:0)
当前,我更喜欢使用以下方法:
String data = "Date from Register: ";
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
// Verify that OS.Version is > API 26 (OREO)
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
// Origin format
LocalDate localDate = LocalDate.parse(capitalModels.get(position).getDataServer(), formatter); // Parse String (from server) to LocalDate
DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("dd/MM/yyyy");
//Output format
data = "Data de Registro: "+formatter1.format(localDate); // Output
Toast.makeText(holder.itemView.getContext(), data, Toast.LENGTH_LONG).show();
}else{
//Same resolutions, just use legacy methods to oldest android OS versions.
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd",Locale.getDefault());
try {
Date date = format.parse(capitalModels.get(position).getDataServer());
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy", Locale.getDefault());
data = "Date from Register: "+formatter.format(date);
} catch (ParseException e) {
e.printStackTrace();
}
}