Tag: date

使用可变空格解析日期

我使用Joda来解析日期并使用不使用前导零的格式,例如: Mon Nov 20 14:40:36 2006 Mon Nov 6 14:40:36 2006 请注意,dayOfMonth字段用空白填充。 目前我似乎必须使用两种不同的格式,如果一个失败则重新分析 “EEE MMM dd HH:mm:ss yyyy” “EEE MMM d HH:mm:ss yyyy” 是否有单一格式(或API开关)处理这两种情况? (SimpleDateFormat的答案是一样的 – 我不使用它?)

从Hijri日期字符串获取格里高利日期

我想从Hijri日期索引中得到一个格里高利日期。 例如 getDate(1436, “SHawwal”, 18) 这应该回来了 3rd August 2015 我怎么能进行转换?

2个java.util.Date之间的月数,不包括日期

我想要两个java.util.Date之间的月数,而不计算月份的日期。 所以我只想比较年份和月份。 例: monthsBetween(new Date(2012,01,28), new Date(2012,02,01)) —> 1 monthsBetween(new Date(2012,02,27), new Date(2012,02,28)) —> 0 monthsBetween(new Date(2012,03,28), new Date(2012,07,01)) —> 4 我试过这个(返回0,预期1),使用Joda-time: private static int monthsBetween(final Date fromDate, final Date toDate) { DateTime date1 = new DateTime().withDate(2012, 1, 20); DateTime date2 = new DateTime().withDate(2012, 2, 13); PeriodType monthDay = PeriodType.yearDayTime().withDaysRemoved(); Period difference = new Period(date1, […]

Joda时间被包含在Java 7中?

可能重复: Java 7日期/时间API 我已经读过有关Joda Time预计将被包含在Java 7中的传闻,但我无法找到这些信息的权威来源。 将Joda Time包含在未来的JDK中吗? 请引用你的消息来源。

使用SimpleDateFormat解析日期不一致

我真的在这个问题上摸不着头脑。 我一直在使用SimpleDateFormat并没有麻烦,但是现在,使用SimpleDateFormat来解析日期(仅有时)只是完全错误。 特别: SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”); Date date = sdf.parse(“2009-08-19 12:00:00”); System.out.print(date.toString()); 打印字符串Wed Aug 19 00:00:00 EDT 2009 。 有没有搞错? – 它甚至不会一直解析到错误的日期! 更新:这很好地修复了它。 难道你不知道,在其他一些地方也被误用了。 得爱调试其他人的代码:)

如何使用Java的Joda API在几个月内计算差异

我正在编写一个程序,它应该只计算2个给定日期之间的月份并将值返回给程序。 例如,如果我必须计算4月1日到6月30日之间的月数(这是一个季度,3个月),我使用以下代码: DateTime start = new DateTime().withDate(2011, 4, 1); DateTime end = new DateTime().withDate(2011, 6, 30); Months mt = Months.monthsBetween(start, end); int monthDiff = mt.getMonths(); 使用这个,我仍然得到“2”作为月数,而实际上是“3”个月。 这是我想要的一个例子。 我只计算月数(即从开始月份的第1天到结束月份的最后一天),我不需要额外的分析,如天,周,小时等。我如何实现这一目标? 任何帮助,将不胜感激。

日期为UTC格式Java

我有一个像这样的字符串2013-10-22T01:37:56 。 我需要将此字符串更改为UTC日期格式,如MM/dd/yyyy KK:mm:ss a 。 我尝试了一些代码,但它没有返回UTC日期时间。 我的代码是 String[] time = itsAlarmDttm.split(“T”); String aFormatDate = time[0]+ ” “+time[1]; String aRevisedDate = null; try { final SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”); final Date dateObj = sdf.parse(aFormatDate); aRevisedDate = new SimpleDateFormat(“MM/dd/yyyy KK:mm:ss a”).format(dateObj); System.out.println(aRevisedDate); } catch (ParseException e) { itsLogger.error(“Error occured in Parsing the Data Time […]

查看当前时间是否在当前Java的特定时间范围内

我确信这在1000个不同的地方完成了1000次。 问题是我想知道是否有更好的/标准/更快的方法来检查当前“时间”是否在以hh:mm:ss格式给出的两个时间值之间。 例如,我的大型业务逻辑不应该在18:00:00 and 18:30:00之间运行。 所以这就是我的想法: public static boolean isCurrentTimeBetween(String starthhmmss, String endhhmmss) throws ParseException{ DateFormat hhmmssFormat = new SimpleDateFormat(“yyyyMMddhh:mm:ss”); Date now = new Date(); String yyyMMdd = hhmmssFormat.format(now).substring(0, 8); return(hhmmssFormat.parse(yyyMMdd+starthhmmss).before(now) && hhmmssFormat.parse(yyyMMdd+endhhmmss).after(now)); } 示例测试用例: String doNotRunBetween=”18:00:00,18:30:00″;//read from props file String[] hhmmss = downTime.split(“,”); if(isCurrentTimeBetween(hhmmss[0], hhmmss[1])){ System.out.println(“NOT OK TO RUN”); }else{ System.out.println(“OK TO RUN”); } […]

如何将时间戳转换为Date或DateTime对象?

我正在使用ResultSet.getTimestamp()从数据库中检索时间戳对象,但我想要一种简单的方法来获取MM/DD/YYYY格式的日期和格式为HH:MM xx 。 我正在修修补补,看起来我可以通过在Java中使用Date和/或DateTime对象来做到这一点。 这是最好的方法,还是我甚至需要转换时间戳才能实现这一目标? 任何建议都会有所帮助。 …. while(resultSet.next()) { Timestamp dtStart = resultSet.getTimestamp(“dtStart”); Timestamp dtEnd = resultSet.getTimestamp(“dtEnd”); // I would like to then have the date and time // converted into the formats mentioned… …. } ….

Java – 将java.time.Instant转换为没有Zone偏移的java.sql.Timestamp

在我正在开发的应用程序中,我需要将java.time.Instant对象转换为java.sql.Timestamp。 当我创建Instant对象时,例如 Instant now = Instant.now(); 并检查元素。 我收到类似2017-03-13T14:28:59.970Z然后我尝试创建如下的Timestamp对象: Timestamp current = Timestamp.from(now); 当我检查元素时。 我收到类似2017-03-13T16:28:59.970Z的相同结果,但增加了2小时的偏移。 任何人都可以解释你的这种情况,并为我提供答案如何解决这个问题而没有抵消? 当我这样创建时: LocalDateTime ldt = LocalDateTime.ofInstant(Instnant.now(), ZoneOffset.UTC); Timestamp current = Timestamp.valueOf(ldt); 一切正常。 但我尽量避免转换。 有没有办法只使用Instant对象?