首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Java中减去月数

在Java中减去月数
EN

Stack Overflow用户
提问于 2019-05-28 23:42:54
回答 3查看 86关注 0票数 -5

我使用两个字符串变量来存储两个不同的日期。日期以这种格式存储(2019年5月28日),我需要找出月份的差异。我无法计算是否需要在执行减法之前首先将这些日期转换为另一种格式。

我使用getText()从以下位置获取这些日期//span@class='expiry_date‘

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-05-29 00:01:04

最简单的方法是使用ChronoUnit#between方法:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern( "MMMM dd, yyyy", Locale.US );
LocalDate d1 = LocalDate.parse( "May 28, 2019", formatter );
LocalDate d2 = LocalDate.parse( "September 02, 2020", formatter );

long diff = ChronoUnit.MONTHS.between( d1, d2 );   // 15 full months
票数 0
EN

Stack Overflow用户

发布于 2019-05-28 23:52:20

您可以使用DateFormat类将String转换为Date对象。进行加法或减法的最简单方法是使用Calendar类。您可以将Date对象转换为Calendar对象并执行计算。请记住,Calendar对象不会保存时间信息,但这似乎不是您的问题。

票数 0
EN

Stack Overflow用户

发布于 2019-05-29 00:27:04

到了你给出的点,在做减法之前,你是否需要首先将这些日期转换为另一种格式。您应该采取的最好方法是首先将日期转换为Java8 LocalDate,然后找出不同之处

以下是示例代码,它可能会对您有所帮助,尽管您还没有展示您的代码努力。

    DateTimeFormatter customFormatter= DateTimeFormatter.ofPattern( "MMMM dd, yyyy",Locale.US);

    LocalDate date1 = LocalDate.parse( "April 01, 2019", customFormatter );
    LocalDate date2 = LocalDate.parse( "October 01, 2019", customFormatter );


    Period dateDifference = Period.between(date1, date2);
    System.out.println(dateDifference.toTotalMonths());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56345776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档