Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以2019年2月24日的格式在Java中查找未来日期(比如从今天起两个月)_Java_Date Formatting_Localdate_Date - Fatal编程技术网

如何以2019年2月24日的格式在Java中查找未来日期(比如从今天起两个月)

如何以2019年2月24日的格式在Java中查找未来日期(比如从今天起两个月),java,date-formatting,localdate,date,Java,Date Formatting,Localdate,Date,以下是我将采用的方法: Date DateObject = new Date(); SimpleDateFormat formatDate = new SimpleDateFormat("dd MMMM yyyy"); String dateString = formatDate.format(DateObject); System.out.println(dateString); 现在,这将以所需的格式为我提供当前日期。我想从这个日期起两个月内以相同的格式找到Date的值 我还尝试了以下方法

以下是我将采用的方法:

Date DateObject = new Date();
SimpleDateFormat formatDate = new SimpleDateFormat("dd MMMM yyyy");
String dateString = formatDate.format(DateObject);
System.out.println(dateString);
现在,这将以所需的格式为我提供当前日期。我想从这个日期起两个月内以相同的格式找到Date的值

我还尝试了以下方法:

LocalDate futureDate = LocalDate.now().plusMonths(2);
这给了我想要的日期,从现在起两个月,但格式为2019-04-24。当我尝试使用SimpleDataFormat格式化此日期时,它给了我非法参数异常

尝试使用Java 8中引入的类,避免使用
SimpleDataFormat

public static void main(String[] args) {
     LocalDate futureDate = LocalDate.now().plusMonths(2);
     DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MMMM yyyy");
     String dateStr = futureDate.format(formatter);
     System.out.println(dateStr);
}
输出:

24 April 2019
Java 8中的
DateTimeFormatter
是不可变的,并且是线程安全的,可以替代
SimpleDataFormat

尝试使用Java 8中引入的类,避免使用
SimpleDataFormat

public static void main(String[] args) {
     LocalDate futureDate = LocalDate.now().plusMonths(2);
     DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MMMM yyyy");
     String dateStr = futureDate.format(formatter);
     System.out.println(dateStr);
}
输出:

24 April 2019

Java 8中的
DateTimeFormatter
是不可变的,线程安全的
SimpleDataFormat

日期没有任何格式。它们只是数据(即,一个毫秒数,或三个整数字段,表示日、月和年)。当您使用日期格式化程序将它们转换为字符串时,您可以选择如何格式化它们。停止使用java.util.Date和SimpleDataFormat:它们已经过时了。阅读LocalDate的javadoc,了解如何按照您想要的方式格式化它。谢谢@JB。一定会挺过去的。非常感谢您提供的信息。日期没有任何格式。它们只是数据(即,一个毫秒数,或三个整数字段,表示日、月和年)。当您使用日期格式化程序将它们转换为字符串时,您可以选择如何格式化它们。停止使用java.util.Date和SimpleDataFormat:它们已经过时了。阅读LocalDate的javadoc,了解如何按照您想要的方式格式化它。谢谢@JB。一定会挺过去的。非常感谢你提供的信息。谢谢你!这帮助我解决了问题。@KovidMehta很高兴能帮上忙!谢谢你!这帮助我解决了问题。@KovidMehta很高兴能帮上忙!