当前位置: 首页 > 知识库问答 >
问题:

如何使用 Jodatime 转换年、月和日中的天数?

何兴安
2023-03-14

如何使用 Jodatime 转换年、月和日中的天数?

例如:

天数= 365;应打印= 1年,0个月,0天

Days days = Days.days(365);
    Period p1 = new Period(days);

    PeriodFormatter dhm = new PeriodFormatterBuilder()
        .appendDays().appendSuffix(" days", " Dias").appendSeparator(", ")
        .appendMonths().appendSuffix(" months", " Meses").appendSeparator(", e ")
        .appendYears().appendSuffix(" years", " Anos").toFormatter();

    System.out.println(dhm.print(p1.normalizedStandard()));

输出控制台:

1 day(s)

我也尝试打印

period.getYears() + " Ano(s), "
+ period.getMonths() + " Mes(es), "
+ period.getDays() + " Dia(s)"

共有1个答案

松旻
2023-03-14

基本上没有这样的概念。毕竟,365天不是一年,如果你从闰年开始。

您可以做的是获取一些“基本”日期,将基于天的时间段添加到其中,然后从结果中获取基于年/月/日的时间段:

Period convertToYearMonthDay(Period period, LocalDate referenceDate) {
    LocalDate endDate = referenceDate.plus(period);
    return new Period(referenceDate, endDate, PeriodType.yearMonthDay());
}

您当前输出的原因是< code>normalizedStandard正规范化为“52周1天”。

 类似资料:
  • 当x超过3600秒时,有没有办法把x秒转换成y小时和z秒?类似地,当x超过60但小于3600秒时,使用Jodatime将其转换为“A分钟和b秒”?我明白我必须在PeriodFormatter中指定我需要什么,但我不想指定它--我想要一个基于秒值的格式化文本。 这类似于你在论坛上发帖,然后你的帖子最初会显示为“10秒前发布的”…一分钟后,你会看到“1分20秒前发布”,几周、几天、几年都是如此。

  • 问题内容: 我正在尝试使用以下格式为每个人打印其年龄: 例如:19年8个月13天。 我已经在Google上搜索了很多,并且注意到有一个特定的函数可以计算日期之间的差。 但是,该功能在中不存在,因此我继续尝试使用和一些运算符。 我的尝试: 我的问题取决于日子。我不知道如何使用此函数计算天数(“尝试除以4或30”);我以为我的逻辑不好,但我无法弄清楚,有什么想法吗? 问题答案: 与Lalit的答案非常

  • 问题内容: 我正在使用模块,即: 我想计算考虑takes年的一年中的某天。例如今天(2009年3月6日)是2009年的第65天。 我看到两个选择: 创建一个数组,确定是否是a年,然后手动汇总天数。 用于猜测,然后二进制搜索一年中的正确日期: YEAR = 2009 DAY_OF_YEAR = 62 d = datetime.date(YEAR, 1, 1) + datetime.timedelta

  • 问题内容: 我如何使用返回年份,月份和天数中两个日期之间的差 结果如何:2年3个月10天 有人能完成吗? 问题答案: 这是我对Eric函数的解决方案: 如果开始日期晚于结束日期,请使用ABS进行处理。 这: ..或非CTE用于SQL Server 2000及更低版本: …将返回:

  • 这就是我所拥有的。

  • 如果在程序中有人给我天数(ab=“days”),我需要将变量“days”设置为相同的数字(“val”中的值),如果有人给我月份(ab=“months”),那么我需要将其转换为天(val中的值),如果有人给我年(ab=“years”),那么我需要将其转换为天(val中的值)。ie如果用户在变量“ab”中指定了值的类型(即是月、年或日期)和变量“val”中的天数(天/月/年),我需要在变量“天”中获得

  • 问题内容: 我想查找给定月份和年份的总天数。示例:我想 查找年份= 2015,月份= 7的总天数 问题答案: 首先NSDate为给定的年份和月份创建一个: 然后使用该rangeOfUnit()方法,如 使用iPhone SDK的当月天数中所述? Swift 3(Xcode 8)更新:

  • 我需要一个可配置的格式作为输出。 我将永远只获得从“01”到“31”的日期字符串 我将永远只获得从“1000”到“9999”的年份字符串 我将永远只获得从“01”到“12”的月份字符串(永远不获得一月、二月等) 我知道SimpleDateFormat(format)可以在一定程度上起作用。 类似于: