如何在Java中将日期从MM / YYYY转换为MM / DD / YYYY

时间:2011-01-12 07:06:13

标签: java

我想将日期从MM / YYYY转换为MM / DD / YYYY,我怎样才能在Java中使用SimpleDateFormat? (注意:DD可以是该月的开始日期)

4 个答案:

答案 0 :(得分:5)

请仔细阅读http://download.oracle.com/javase/1.5.0/docs/api/java/text/DateFormat.html以下链接,以便更清晰明了。

我想到的一种实施方式是:

String yourDate = <yourDate>
DateFormat dateFormat= new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Date date= new Date();
date = (Date)dateFormat.parse(yourDate);
//String dateString= dateFormat.format(date);
/*Print your date*/

请浏览此链接SimpleDateFormat

答案 1 :(得分:4)

    try {
        String str_date = "01/11";
        DateFormat formatter;
        Date date;
        formatter = new SimpleDateFormat("MM/yyyy");
        date = (Date) formatter.parse(str_date);
        formatter = new SimpleDateFormat("MM/dd/yyyy");
        System.out.println("Today is " + formatter.format(date));
    } catch (ParseException e) {
        System.out.println("Exception :" + e);
    }

答案 2 :(得分:0)

最简单的方法是使用字符串操作。

String date1 = "12/2010";
String date2 = date1.replace("/","/01/");

答案 3 :(得分:0)

TL;博士

YearMonth.parse( 
    "12/2016" , 
    DateTimeFormatter.ofPattern( "MM/uuuu" ) )
)
.atDay( 1 )
.format( DateTimeFormatter.ofPattern( "MM/dd/uuuu" ) )  // 12/01/2016

java.time

Java现在包含YearMonth类来表示这种类型的值,一个月和一年没有一个月的日期。

解析/生成月份字符串的默认格式为YYYY-MM。该格式被定义为ISO 8601格式的一部分。默认情况下,java.time类使用ISO 8601格式。

您的输入字符串具有替代格式,因此我们必须指定格式设置模式。

String input = "12/2016" ;  // December 2016.
DateTimeFormatter f = DateTimeFormatter.ofPattern( "MM/uuuu" );
YearMonth ym = YearMonth.parse( input , f );

通过调用toString来查看结果。

String output = ym.toString();
  

2016-12

指定创建LocalDate实例的日期。 LocalDate类表示没有时间且没有时区的仅限日期的值。

LocalDate ld = ym.atDay( 1 );

你可以让班级弄清楚这个月的最后一天。请记住,2月闰年的长度不同。 YearMonth类知道如何处理闰年。

LocalDate ld = ym.atEndOfMonth();

关于java.time

java.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧legacy日期时间类,例如java.util.DateCalendar和&amp; SimpleDateFormat

现在位于Joda-Timemaintenance mode项目建议迁移到java.time类。

要了解详情,请参阅Oracle Tutorial。并搜索Stack Overflow以获取许多示例和解释。规范是JSR 310

从哪里获取java.time类?

ThreeTen-Extra项目使用其他类扩展java.time。该项目是未来可能添加到java.time的试验场。您可以在此处找到一些有用的课程,例如IntervalYearWeekYearQuartermore

仅供参考,Java有类似的类MonthDay

相关问题