Tag: datetime

使用新的Date()作为唯一标识符

想象一下,我有一个每秒创建1000个实体的过程。 对于每个这些实体,我称之为setter: newEntity.setDate(new Date()); 1)2个实体是否有可能收到相同的日期? 或者可以安全地假设我确实获得了日期字段的唯一标识符效果? 2)如果对问题#1的回答是:“是” – 让我们做一个小调整:让我们创建一个函数: public static synchronized Date getDate() { return new Date(); } 它现在会起作用吗? newEntity.setDate(getDate()); 3)怎么样 System.nanoTime()? 编辑 4)怎么样: public static synchronized Date getDate() { Thread.Sleep(1000); return new Date(); } 谢谢。

PeriodFormatter不显示天数

我使用PeriodFormatter返回一个字符串,显示事件发生的时间。 下面的代码不断创建字符串,如1146小时39分钟,而不是x天y小时z分钟。 有任何想法吗? 谢谢,内森 PeriodFormatter formatter = new PeriodFormatterBuilder() .printZeroNever() .appendDays() .appendSuffix( “d ” ) .appendHours() .appendSuffix( “h ” ) .appendMinutes() .appendSuffix( “m ” ) .toFormatter(); return formatter.print( duration.toPeriod() );

如何让Joda DateTime解析器只接受yyyyMMddforms的字符串?

我想使用Joda-Time以yyyyMMdd格式解析日期(因此日期应该有八位数)。 我按如下方式定义了日期格式化程序 DateTimeFormatter formatter = DateTimeFormat.forPattern(“yyyyMMdd”).withZoneUTC(); // a valid eight-digit date String dateValid = “20130814”; DateTime dateJoda = formatter.parseDateTime(dateValid); System.out.println(dateJoda.toString()); // an invalid seven digit date String dateInvalid = “2013081”; dateJoda = formatter.parseDateTime(dateInvalid); System.out.println(dateJoda.toString()); 我希望在解析第二个无效日期时看到exception。 但是代码的输出是 2013-08-14T00:00:00.000Z 2013-08-01T00:00:00.000Z 为什么Joda解析器只接受7位数的无效日期? 如何更改格式化程序以不接受任何没有8位数字的日期?

使用新的dateTime API获取持续时间

我想得到一个代表3年持续时间的java.time.Duration实例, 我找到了两种方法(见下面的代码)。 public static void main(String[] args) { Duration d1 = Duration.of(3, ChronoUnit.YEARS); //Runtime Exception Duration d2 = ChronoUnit.YEARS.getDuration().multipliedBy(3); System.out.println(“d2=”+d2.toDays()); //OUTPUT: d2=1095 } 第一种方法d1在运行时抛出以下exception: 线程“main”中的exceptionjava.time.temporal.UnsupportedTemporalTypeException:Unit不能有估计的持续时间 在java.time.Duration.plus(未知来源) 在java.time.Duration.of(未知来源) 在mod7.vehicalc.Test.main(Test.java:26) 第二种方式, d2 ,按预期工作。 造成这种差异的原因是什么?

在JSR-310中计算修改过的朱利安日

如何从JSR-310类(如LocalDate计算Modified Julian日? (在JDK 8中) 具体来说,这是计算称为“修改过的朱利安日”的连续天数 ,而不是朱利安日历系统中的日期 。 例如: LocalDate date = LocalDate.now(); long modifiedJulianDay = ???

为JodaTime Instant添加一些天数

我正在尝试编写一个简单的实用程序方法,用于向Joda时刻添加整数天。 这是我的第一次尝试。 /** * 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 […]

如何使用Java比较日期

我的格式为2012-02-02(yyyy-MM-dd)。 例如,如果今天的日期是2012-02-02,我需要添加一天半,这将使它成为2012-02-03 06:00:00.0。 如果我有以下格式的多个日期2012-02-03 06:30:00.0(yyyy-MM-dd HH:MM:SS.SSS),我需要比较所有这些日期是否小于,更大超过或等于上面添加一天半的日期。 在比较日期是否小于,大于或等于或等于其他日期和时间时,比较还应该照顾小时数。 我如何实现同样的目标。

Java 8设置全局时间格式化程序

我想将自己的DateTimeFormatter设置为全局格式化程序。 当我执行以下行时: ZonedDateTime.now(); 我明白了: 2016-03-30T08:58:54.180-06:00[America/Chicago] 如果我这样做: ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME) 我明白了: Wed, 30 Mar 2016 9:00:06 -0600 我想要上面打印但是上午/下午所以我制作了自定义格式化程序并打印出时间如下: DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern(“EEE, dd MMM yyyy HH:mm:ss a Z”); ZonedDateTime.now().format(FORMATTER); 哪个给了我: Wed, 30 Mar 2016 9:00:06 AM -0600 但我在任何地方都使用这个.now()方法进行日志记录,我不想在代码中的任何地方定义格式化程序。 有没有办法将格式化程序配置为调用.now()方法时使用的默认格式? 我在想spring的配置方法或者什么……

处理Spark Scala中的微秒

我使用Scala将PostgreSQL表作为dataframe导入spark。 数据框看起来像 user_id | log_dt ——–| ——- 96 | 2004-10-19 10:23:54.0 1020 | 2017-01-12 12:12:14.931652 我正在转换此dataframe,使log_dt的数据格式为yyyy-MM-dd hh:mm:ss.SSSSSS 。 为了实现这一点,我使用以下代码使用unix_timestamp函数将log_dt转换为时间戳格式。 val tablereader1=tablereader1Df.withColumn(“log_dt”,unix_timestamp(tablereader1Df(“log_dt”),”yyyy-MM-dd hh:mm:ss.SSSSSS”).cast(“timestamp”)) 当我打印使用命令tablereader1.show()打印tablereader1dataframe时,我得到以下结果 user_id | log_dt ——–| ——- 96 | 2004-10-19 10:23:54.0 1020 | 2017-01-12 12:12:14.0 如何将微秒保留为时间戳的一部分? 任何建议表示赞赏。

PHP的日期和时间助手(如Java中的Joda-Time)

我正在寻找像Java世界中的Joda-Time这样的库(开源)。 有那样的图书馆吗? Joda-Time对计算日期和时间非常有帮助。 我可以添加天,周,月,年,也可以轻松转换日期和时间。 我希望有像Joda-Time for PHP这样的库。 编辑:我需要Joda-Time中可用的一些函数,例如daysBetween(计算2日期之间的天数),monthsBetween和weeksBetween …有些关于add和substract日期的函数可以从PHP本身获得。