Tag: 日期

识别任意日期字符串

我需要能够识别日期字符串。 如果我无法区分月份和日期(例如12/12/10)并不重要,我只需要将字符串分类为日期,而不是将其转换为Date对象。 所以,这实际上是一个分类而不是解析问题。 我会有一些文字,例如: “bla bla bla bla 12 Jan 09 bla bla bla 01/04/10 bla bla bla” 我需要能够识别每个日期字符串的开始和结束边界。 我想知道是否有人知道任何可以做到这一点的java库。 到目前为止,我的google-fu还没有拿到任何东西。 更新:我需要能够识别出最广泛的代表日期的方法。 当然,天真的解决方案可能是为每种可能的格式编写if语句,但是模式识别方法与训练有素的模型一样,理想情况下我正在追求的。

Java:JPQL日期函数将时间段添加到另一个日期

SELECT x FROM SomeClass WHERE x.dateAtt BETWEEN CURRENT_DATE AND (CURRENT_DATE + 1 MONTH) 在上面的JPQL语句中,SomeClass有一个memebr dateAttr ,它是一个java.util.Date并且有一个@Temporal(javax.persistence.TemporalType.DATE)注释。 我需要一种方法来执行(CURRENT_DATE + 1 MONTH)位 – 它在当前状态下显然是错误的 – 但是找不到带有JPQL日期函数的doc。 任何人都可以指向我的文档的方向, 文档JPQL日期函数 (以及如何执行此特定查询)?

检索当前周的周一日期

我们有一个实用工具,将在周一至周五之间的任何一天运行。 它将更新内容管理工具中的一些文件。 与该文件关联的最后修改日期应该是该周的星期一日期。 我编写了以下程序来检索当前周的星期一日期。 但我仍然不确定这是否适用于所有情况。 有没有人有更好的解决方案? Calendar c = Calendar.getInstance(); c.setTime(new Date()); System.out.println(c.get(Calendar.DAY_OF_MONTH)); System.out.println(c.get(Calendar.DAY_OF_WEEK)); int mondayNo = c.get(Calendar.DAY_OF_MONTH)-c.get(Calendar.DAY_OF_WEEK)+2; c.set(Calendar.DAY_OF_MONTH,mondayNo); System.out.println(“Date “+c.getTime());

区域设置的Java日期格式

如何找到给定Locale的DateFormat ?

解析中的java日期问题

我正在解析一个约会,我在2011-02-10 00:00:00:0 ,结果是2011-01-10 。 这是错的吗? 请帮忙。 DateFormat df = new SimpleDateFormat(“yyyy-mm-dd”); today = df.parse(datecollection);

日期范围中的日期范围

实际上这个任务对我来说似乎很容易,但我有点卡住了,并会感谢一些提示:D 我有一些有开始和结束时间的事件 – 我想创建一个包含日历周的表格。 因此,我写了一个方法来检查一个事件是否在本周内为它着色如下: private boolean inWeek(Date date, Entry pe) { return ((pe.getStartsAt().after(Util.firstDayOfWeek(date)) || pe.getStartsAt().equals(Util.firstDayOfWeek(date))) && (pe.getEndsAt().before(Util.lastDayOfWeek(date)) || pe.getEndsAt().equals(Util.lastDayOfWeek(date)))); } 如果事件持续一周,这个案子还可以。 但如果事件在本周之前开始,或在本周之后结束甚至持续数周,该怎么办? 它变得非常复杂,我目前的解决方案是: private boolean inWeek(Date date, Entry pe) { return ( pe.getStartsAt().after(Util.firstDayOfWeek(date)) && pe.getEndsAt().after(Util.firstDayOfWeek(date)) && pe.getEndsAt().before(Util.lastDayOfWeek(date)) ) || ( pe.getStartsAt().before(Util.lastDayOfWeek(date)) && pe.getStartsAt().after(Util.firstDayOfWeek(date)) && pe.getEndsAt().after(Util.lastDayOfWeek(date)) ) || ( pe.getStartsAt().after(Util.firstDayOfWeek(date)) && pe.getEndsAt().before(Util.lastDayOfWeek(date)) ) || ( […]

如何将日期添加到java简单日期格式

我应该如何添加120天到我目前使用简单日期格式的日期? 我看过很少关于它的post但是无法让它工作, 我的代码如下: SimpleDateFormat dateFormat = new SimpleDateFormat(“dd/MM/yyyy”); //get current date time with Date() Date date = new Date(); 我是否需要使用Calendar库?或者我可以使用简单的日期格式吗?

适用于地理位置不同的用户的日期操作/存储的Java最佳实践

我已经阅读了关于日期操作的所有其他Q / A,但它们似乎都没有给我一个满意的答案。 我有一个地理位置不同的用户项目,在一些类和数据中使用Date 。 问题是我正在寻找一种有效的方法来操纵各自时区中不同用户的日期,大多数答案建议使用Joda库进行Date操作,这还不太明白,因为我还没有发现任何你不能用传统的Java做的操作,所以如果有人可以解释我用Joda做些什么不能用传统的Java做,那么我可以考虑使用它。 我终于找到了使用System.currentTimeMillis()将日期保存到数据库(任何数据库)的方法。 这样可以避免让我担心使用数据库存储日期的时区。 如果我想查询数据库中的特定日期或日期范围,我会使用我想要查询的Date的long值来执行查询: SELECT * FROM table1 WHERE date1>=1476653369000 在检索ResultSet我会使用请求数据的用户的时区将从数据库检索到的long值格式化为可读Date 。 Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(resultSet.getLong(1)); cal.setTimeZone(TimeZone.getTimeZone(“Asia/Calcutta”)); Date myDate = cal.getTime(); 根据我读过的一些观点,有些人强调说存储System.currentTimeMillis()肯定不是最好的做法,但是,出于某种原因,他们都错过了为什么不推荐这样做。 我错过了什么吗? 这是否会导致转换Long->Date / Date->Long的性能问题? 在数据库中使用Long而不是Date时是否有任何用例无法实现? 有人可以发布关于此的理由解释吗? 另一方面,假设我继续使用Date值在数据库中存储日期,有没有办法避免在处理数据库Date时担心时区? 提前致谢。

java.util.Date格式SSSSSS:如果不是微秒,那么最后3位数是多少?

刚刚在我的Windows(8)工作站和AIX上测试了这段代码: public static void main(String[] args) { System.out.println(new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss.SSSSSS”).format(new Date())); System.out.println(new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss.SSSSSS”).format(new Date())); } 并得到类似的结果: 2013-10-07 12:53:26.000905 2013-10-07 12:53:26.000906 有人可以解释一下,如果不是微秒,最后的数字是什么? 注意:我与DB2数据库进行交互,其中使用定时列作为TIMESTAMP存储按时间顺序排列的数据,其中6位数字在秒之后,即微秒(IMO)。 但是所有这些“时间戳”都是通过请求以下查询来创建的: SELECT current timestamp as currenttimestamp FROM Table ( values (1)) temp 我想知道,鉴于上述结果,我不能只在我的代码中使用new Date()而不是从数据库中选择current timestamp 。 谢谢。 PS:我搜索过但发现没有相关(已回答)的问题,例如: java中的当前时间(以微秒为单位)或以小时,分钟,秒,毫秒,微秒获取时间

Java日期年度计算按年计算,为期两天

如果你能想象的话,这会在我的软件中引起Y2K风格的错误。 奇怪的是,一年的计算只发生在一年中的两天,我不太确定如何排除故障。 输出: 03-Jan-2013 02-Jan-2013 01-Jan-2013 31-Dec-2013 ** strange 30-Dec-2013 ** strange 29-Dec-2012 28-Dec-2012 27-Dec-2012 26-Dec-2012 25-Dec-2012 我不确定Java日期实用程序的哪一部分可能导致此类错误。 代码(因为测试很小,我包括一个完整的工作程序): import java.util.Calendar; import java.util.Date; import java.text.SimpleDateFormat; public class DateT { private static String getFormattedBackscanStartTime(int days) { SimpleDateFormat dateFormat = new SimpleDateFormat(“dd-MMM-YYYY”); Calendar workingDate = Calendar.getInstance(); workingDate.add(Calendar.DATE, -1 * days); String formattedStartTime = dateFormat.format(workingDate.getTime()); return formattedStartTime; } […]