我正在尝试编写一个简单的实用工具方法,将一个整数天添加到Joda时间 instant.这是我的第一次尝试.
/**
 * Adds a number of days specified to the instant in time specified.
 *
 * @param instant - the date to be added to
 * @param numberOfDaysToAdd - the number of days to be added to the instant specified
 * @return an instant that has been incremented by the number of days specified
 */
public static Instant addNumberOfDaysToInstant(final Instant instant,final int numberOfDaysToAdd) {
    Days days = Days.days(numberOfDaysToAdd);
    Interval interval = new Interval(instant,days);
    return interval.getEnd().toInstant();
}

这在大多数情况下都可以正常工作,除非您考虑添加天数的示例,这会使您跨越BST / GMT边界.这是一个小例子.

public class DateAddTest {

/ **
*用于输入和输出的区域
* /
private static final DateTimeZone ZONE = DateTimeZone.forId(“Europe / London”);

/**
 * Formatter used to translate Instant objects to & from strings.
 */
private static final DateTimeFormatter FORMATTER = DateTimeFormat.forPattern(DATE_FORMAT).withZone(ZONE);


/**
 * Date format to be used
 */
private static final String DATE_FORMAT = "dd/MM/yyyy";


public static void main(String[] args) {

 DateTime dateTime = FORMATTER.parseDateTime("24/10/2009");
 Instant toAdd = dateTime.toInstant();
 Instant answer = JodaTimeUtils.addNumberOfDaysToInstant(toAdd,2);

 System.out.println(answer.toString(FORMATTER)); //25/10/2009
}

}

我认为这个问题是因为间隔没有考虑到它已越过bst边界的事实.任何更好的实现方法的想法将不胜感激.

解决方法

如果您想处理日期,请不要使用时刻.我怀疑它正确地添加了48小时.

改为使用LocalDate,然后使用plusDays方法.

如果您想知道在指定时刻后n天发生的瞬间,在一天的同一时间,我们无疑可以找到一种方法(将瞬间拆分为LocalDate和LocalTime,推进LocalDate然后重新组装,或检查LocalDateTime是否符合您的要求,但如果原始时间在新的一天发生两次,或者根本不发生,您需要计算出您想要发生的事情.

编辑:好的,所以你需要立即工作.那是否必须在原始时区?你能用UTC吗?这会夺走DST问题.如果不是,那么在模糊或不存在的情况下你想要它做什么(例如在每个转换之前的12:30).

java – 为JodaTime Instant添加一些天的更多相关文章

  1. NSDate教程Swift版

    格式化这个概念在直接处理NSDate对象时还用不到。另外一个稍后需要关注的类是NSDateComponents。另外,访问日期组件并生成日期属性到NSDateComponents中去需要先执行一些转换命令,我们接下来会谈这个。另外,NSDateComponents类还适合查找两个日期之间的间隔。NSDate和字符串相互转换一开始,我们需要通过NSDate类获取当前日期,并且将其赋值给一个常量。现在来初始化一个NSDateFormatter对象,它是我们用来转换日期和字符串的工具。

  2. Swift 的 NSDate 初学者指南

    先从一个最简单的开始:NSDate对象。通常来讲,记住你所需要的就是NSDate这个类,无论你只关心「日」、「时」或者两者。接下来我们会遇到的另一个类是NSDateComponents。将日期从NSDate转换成NSDateComponents的任务属于NSCalendar类,按照惯例,做转换需要一个特定的calendar(日历)对象。此外,在下一节中我们会使用一个特别好的工具,它就是NSDateFormatter类。NSDate和String之间的转换首先,我们使用NSDate获得当前日期,并将它赋给一

  3. swift - DateUtil

  4. 如何通过Swift Package Manager 来构建一个简单的开发环境

    为了解决这个问题,我们需要在Package.swift中,添加必要的依赖关系:这样,我们就创建了一个叫做Application的target,它依赖我们之前创建的BSTmodule。

  5. android – Toast与Dialog框:何时使用?

    谢谢.解决方法Toast主要用于告知用户一些不重要且不需要交互的东西,所以我会使用Toastforthethat.此外,Toast不会阻止用户使用设备/应用程序,您仍然可以激活,例如显示Toast时的基础图标.对话框通常要求用户做出选择,或者显示不需要交互的进度但是将使用户在此期间不做其他事情,这可能是重要的,例如,一旦用户在完成参数之前更改参数,您进行的计算将失败.

  6. android – 带有Coundown计时器的ListView.滚动列表视图时,计时器闪烁

    创建倒计时器实例和取消它时必须小心.如果您不取消计时器,它将更新错误的视图.

  7. php时间计算相关问题小结

    这篇文章主要介绍了php时间计算相关问题,结合实例形式总结分析了php关于时间与日期的常见操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下

  8. windows – 如何打破某人进行测试?

    好.我们的产品有效.Beta测试人员实际上正在完成他们的工作.下一次迭代的时间.但如何保证质量?我们需要一个测试员!我如何让新鲜的人在街上开始测试?我不知道如何自己做!你为什么要找“街上的人”?对我来说,这听起来有点像“我想聘请一位新程序员,如何让某人离开街头让他加快编程我的软件?”.你为什么要这样做,而不是雇用一个已经是程序员的人呢?

  9. 在Windows上以C计算CPU时间

    在C中有什么方法可以计算在cpu时间内运行给定程序或例程需要多长时间?

  10. php – 显示一系列天数

    假设我有这些数字数组,对应于一周中的天数:如何有效地将这些数组转换为所需的字符串,如C风格的注释所示?任何帮助将不胜感激.以下代码应该工作:

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部