我正在编写一个方法来获取3个整数的DOB - 日,月,年并返回格式化版本DD / MM / YYYY。
我目前正在使用dateFormatter和简单的日期格式。虽然当我运行它时默认为01/01/1970并且我无法更改日期。
有什么建议吗?
更新
伙计们感谢以下帖子,问题解决了!
答案 0 :(得分:1)
为什么要使用formatter?这样做:
public String DateOfBirth(int day, int month, int year)
{
String DOB = day + "/" + month + "/" + year;
return DOB;
}
如果是作业,老师可能会要求你不要使用格式化程序。
此外,正如其他人提到的:如果您尝试将整数连接为字符串,则需要在它们之间使用一些字符串。否则,您将对整数的值求和。
答案 1 :(得分:1)
LocalDate.of( 2017 , 1 , 23 )
.format( DateTimeFormatter.ofPattern( "dd/MM/uuuu" ) )
23/01/2017
现代方法使用java.time类。
避免使用旧的旧版日期时间类,例如Date
和Calendar
,因为它们设计不当,令人困惑,麻烦且有缺陷。
LocalDate
LocalDate
表示没有时间且没有时区的仅限日期的值。请注意,与传统课程不同,这里的月份在1月至12月期间的编号为1-12。
LocalDate ld = LocalDate.of( 2017 , 1 , 23 );
DateTimeFormatter
使用格式化程序对象生成表示该值的String。
DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd/MM/uuuu" );
String output = ld.format( f );