Java 将两个日期合并为一种格式?

Java 将两个日期合并为一种格式?,java,calendar,jodatime,Java,Calendar,Jodatime,是否可以定义一种组合两个日期的格式? 例如,假设我有date1,例如2016年1月15日和date2。e、 g.2016年1月20日 是否有任何格式可以用来显示以下内容: 2016年1月15日至20日 其他示例: 例如,假设我有date1,例如2016年1月15日和date2。e、 g.2016年5月20日 结果:2016年1月15日至5月20日这里有一种方法可以做到这一点。当然,这并没有考虑到日期可能在不同的月份或年份。它从开始日期开始计算月份和年份 LocalDate startDate =

是否可以定义一种组合两个日期的格式?
例如,假设我有
date1
,例如2016年1月15日和
date2
。e、 g.2016年1月20日 是否有任何格式可以用来显示以下内容:
2016年1月15日至20日

其他示例:
例如,假设我有
date1
,例如2016年1月15日和
date2
。e、 g.2016年5月20日
结果:2016年1月15日至5月20日

这里有一种方法可以做到这一点。当然,这并没有考虑到日期可能在不同的月份或年份。它从
开始日期开始计算月份和年份

LocalDate startDate = LocalDate.of(2016, 5, 15);
LocalDate endDate = LocalDate.of(2016, 5, 20);

String text = String.format("%1$te-%2$te %1$tB %1$tY", startDate, endDate);

System.out.println(text);
有关格式字符串的工作方式,请参见


注意:这使用的是Java8
Java.time.LocalDate
而不是Joda time。

这里有一种方法。当然,这并没有考虑到日期可能在不同的月份或年份。它从
开始日期开始计算月份和年份

LocalDate startDate = LocalDate.of(2016, 5, 15);
LocalDate endDate = LocalDate.of(2016, 5, 20);

String text = String.format("%1$te-%2$te %1$tB %1$tY", startDate, endDate);

System.out.println(text);
有关格式字符串的工作方式,请参见


注意:这使用的是Java 8
Java.time.LocalDate
而不是Joda time。

2016年5月15-20日-这不是真正的日期格式。我认为没有任何形式可以做到这一点。但是您可以定义自己的方法,该方法将返回字符串 如果您使用的是Java8,请使用localDate

LocalDate myDate = new LocalDate("2016-5-15");
LocalDate endDate =new LocalDate(2016-5-20);

String format = mydate.getDayOfMonth() 
+"-"+ endDate.getDayOfMonth() 
+" "+endDate.getMonth().toString()
+" "+endDate.getYear();

2016年5月15日至20日-这不是真实的日期格式。我认为没有任何形式可以做到这一点。但是您可以定义自己的方法,该方法将返回字符串 如果您使用的是Java8,请使用localDate

LocalDate myDate = new LocalDate("2016-5-15");
LocalDate endDate =new LocalDate(2016-5-20);

String format = mydate.getDayOfMonth() 
+"-"+ endDate.getDayOfMonth() 
+" "+endDate.getMonth().toString()
+" "+endDate.getYear();
我得到以下结果:

2012年5月30日至2013年6月29日

2013年5月30日至6月29日

2013年6月29日至30日

2013年6月30日

我得到以下结果:

2012年5月30日至2013年6月29日

2013年5月30日至6月29日

2013年6月29日至30日

2013年6月30日

ISO 8601 该标准定义了各种日期时间值的文本表示格式

表示时间跨度的标准方法是使用格式为YYYY-MM-DD的日期对,并用斜杠字符连接

2016-01-15/2016-05-20

LocalDate
使用java 8及更高版本内置的java.time框架中的
LocalDate
类,使用一对名为
start
stop
LocalDate
对象

String output = start.toString() + "/" + stop.toString();
ISO 8601 该标准定义了各种日期时间值的文本表示格式

表示时间跨度的标准方法是使用格式为YYYY-MM-DD的日期对,并用斜杠字符连接

2016-01-15/2016-05-20

LocalDate
使用java 8及更高版本内置的java.time框架中的
LocalDate
类,使用一对名为
start
stop
LocalDate
对象

String output = start.toString() + "/" + stop.toString();

结果对象的类型是什么?约会?字符串?@ortis:我想要字符串2016年1月15日的“一月”信息发生了什么?请发布您想要的确切规则。@Tunaki:很抱歉。更新的OPO结果对象的类型是什么?约会?字符串?@ortis:我想要字符串2016年1月15日的“一月”信息发生了什么?请发布您想要的确切规则。@Tunaki:很抱歉。更新的日期范围如何?像第二个example@Jim更改格式字符串,例如:
%1$te%1$tb-%2$te%2$tb%1$tY”
-请参阅(更宽的日期范围如何?如第二个example@Jim将格式字符串更改为:
%1$te%1$tb-%2$te%2$tb%1$tY”
-请参阅(