Java 如何获取本年度的任何具体日期
嗨,我想知道是否有任何方法可以使用Jav的Date类或和Joda Time类来获得今年的特定日期。例如,如果我想要日期Java 如何获取本年度的任何具体日期,java,date,Java,Date,嗨,我想知道是否有任何方法可以使用Jav的Date类或和Joda Time类来获得今年的特定日期。例如,如果我想要日期12/31/2013。这是一个问题的原因,因为我给出了某人生日的字符串表示形式,比如说“12311991”“MMddyyyy”,我想将其转换为具有月份12天31和2013年的日期 有人能帮我吗 我使用的是DateMidnight Joda time类,我使用简单的格式化程序将字符串解析为日期,但我想知道是否有办法将年份设置为特定的年份。尝试使用日历 set(int year,
12/31/2013
。这是一个问题的原因,因为我给出了某人生日的字符串表示形式,比如说“12311991”
“MMddyyyy”
,我想将其转换为具有月份12天31和2013年
的日期
有人能帮我吗
我使用的是DateMidnight Joda time类,我使用简单的格式化程序将字符串解析为日期,但我想知道是否有办法将年份设置为特定的年份。尝试使用日历
set(int year,
int month,
int date)
,int,int)如果要使用实现,可以执行以下操作。使用格式获取日期时间,然后使用方法更改年份
String dob = "12311991";
DateTimeFormatter fmt = DateTimeFormat.forPattern("MMddyyyy");
DateTime dt = fmt.parseDateTime(dob).withYear(2013);
System.out.println(dt);
首先将
字符串
转换为日期
String dateString = "12311991";
SimpleDateFormat sdf = new SimpleDateFormat("MMddyyyy");
Date date = sdf.parse(dateString);
结果是
Tue Dec 31 00:00:00 EST 1991
接下来,使用日历
修改年份
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.YEAR, 2013);
date = cal.getTime();
这导致
Tue Dec 31 00:00:00 EST 2013
只需使用SimpleDataFormat(查看所有格式模式)
java.time
其他答案已经过时了。旧的日期时间类以及Joda时间已经被内置到Java8和更高版本中的框架所取代
该类真正表示一个只包含日期的值,没有一天中的时间,也没有时区(缺少原始的日期时间类)
String string = "12/31/2013";
Date date = new SimpleDateFormat("dd/mm/yyyy", Locale.ENGLISH).parse(string);
System.out.println(date);
String input = "12311991";
DateTimeFormatter formatter = DateTimeFormatter.forPattern("MMddyyyy");
LocalDate localDate = LocalDate.parse( input , formatter ); // 1991-12-31
LocalDate differentYear = localDate.withYear( 2013 ); // 2013-12-31