首页 > TAG信息列表 > java-time

java-其他平台上ZoneIds的可用性

通过of(“ …”)方法获取ZoneId需要具有特定ID的String.可以使用ZoneId.getAvailableZoneIds()检索可用的ID.它将返回(至少在我的系统和JDK上)一长串589个ID.是否保证可以在任何JDK8实现/平台上使用那些工具?怎么样的Android和例如. OpenJDK?解决方法:区域ID取自Time Zone Database,

java-Instant.truncatedTo(ChronoUnit.HOURS)返回的值大于原始值

根据Instant.truncatedTo的javadoc,它所做的是 Truncating the instant returns a copy of the original with fields smaller than the specified unit set to zero. 因此,如果我使用ChronoUnit.HOURS进行调用,我希望小时不会被修改.当我用1970年以后的日期来调用它时,也看

将Java 8 ISO 8601持续时间表达式添加到java.util.Date

我有一个表达式,如“ PT20.345S”,“ P2DT3H4M”等,如此处所述https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html#parse-java.lang.CharSequence- 我如何解析它,将其添加到当前时间并获得java.util.Date对象? 都不起作用: Date d1 = Date.from(LocalDateTime.now(

如何在Java 8中使用Date API达到精确的纳秒精度

我们正在尝试获取具有9个精度值的精确nanoSeconds以捕获时间. 使用Java 8,我们可以实现如下所述. @Test public void testNanoClock() throws InterruptedException{ DateTimeFormatter formatter = new DateTimeFormatterBuilder() .appendInstant(9).toFormatter(

java-为不同的时间字符串接收相同的ZonedDateTime

我正在使用以下函数将微秒格式的时间字符串转换为ZoneDateTime,以便稍后进行比较. public static ZonedDateTime createTimeFromString(String inputTime) { ZonedDateTime time; try { System.out.printf("Input time %s%n", inputTime); DateTimeForma

java – 解析2位数年份:使用未知日期模式设置数据透视表日期

用户将以不同的模式向我的应用程序输入日期.对于两位数的年份,他还必须确定枢轴日期. 例: pattern = yy-MM-ddpivot date = 70(我以编程方式添加当前千年和上个世纪以获得更多动态=> 1970) 69-04-22成为2069-04-2270-04-22成为1970-04-22 与this answer中描述的一样,当日期模式(此处

Java如何获取给定时区缩写的时区ID列表

是否可以找到给定时区缩写的时区ID列表?例如,对于缩写IST,时区ID是亚洲/耶路撒冷,亚洲/加尔各答和欧洲/都柏林.解决方法:有趣的问题.由于缩写没有标准化,因此无法获得权威答案,也无法获得这样的答案.在我的脑海中,我想到了两种方法: >从JVM中获取它们. >在网上找到他们. 从JVM获取区

“plusDays”不会在Java 8中推进LocalDate

为什么即使在运行期间没有错误,LocalDate也不会改变? DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate date = LocalDate.parse("2005-12-12", formatter); date.plusDays(3); System.out.println(date.toString()); 输出: 2005-12-12

使用Java 8 java.time api解析ISO时间戳(仅限标准版)

我无法从示例中的字符串中获取毫秒的毫秒数.到目前为止,我已尝试过这三种不同的方法,示例显示了最新的尝试.似乎总是可以归结为TemporalAccessor不支持ChronoField.如果我可以成功构建Instant的实例,我可以使用toEpochMilli(). String dateStr = "2014-08-16T05:03:45-05:00" Temp

如何使用默认区域解析ZonedDateTime?

如何从不包含区域和其他字段的字符串解析ZoneDateTime? 这是Spock中的测试重现: import spock.lang.Specification import spock.lang.Unroll import java.time.ZoneId import java.time.ZoneOffset import java.time.ZonedDateTime import java.time.format.DateTimeFormatter @U

java – 使用threeten,LocalDate获取月中的第一天和最后一天

我有一个LocalDate需要获得该月的第一天和最后一天. 我怎么做? 例如. 13/2/2014我需要以LocalDate格式获得1/2/2014和28/2/2014. 使用threeten LocalDate类.解决方法:只需使用withDayOfMonth和lengthOfMonth(): LocalDate initial = LocalDate.of(2014, 2, 13); LocalDate start = i

使用Jackson JSR310模块对LocalDateTime进行反序列化

我正在使用the Jackson Datatype JSR310 page描述的库,但我仍然难以让它工作. 我配置了以下bean: @Bean @Primary public ObjectMapper objectMapper() { ObjectMapper mapper = new ObjectMapper(); mapper.registerModule(new JSR310Module()); return mapper; } 当

java – 给定LocalDate时如何获得当天结束?

给定LocalDate时如何获得当天的结束? 我可以做到这一点 LocalDateTime.of(LocalDate.now(), LocalTime.of(23, 59, 59)); 但是在一天结束时是否有相同的’atStartOfDay’方法? LocalDate.now().atStartOfDay(); LocalDate.now().atEndOfDay(); //doesn't work 解决方法:以下是一

Java 8日期/时间(JSR-310)类型与Spring Data MongoDB的映射

我有Java 8日期/时间字段的简单文档 @Document public class Token { private Instant createdAt; ... } 我希望坚持使用Spring Data MongoDB 1.5版.但java.time.Instant类型的字段无法正确反序列化,因为MappingMongoConverter缺少java.time类的转换器. 在Spring 4中,我

Java 8将给定的时间和时区转换为UTC时间

我有时间用字符串类型:“2015-01-05 17:00”,ZoneId是“澳大利亚/悉尼”. 如何使用Java 8 datetime API将此时间信息转换为对应的UTC时间? 还需要考虑DST的东西.解决方法:您正在寻找Java8中的ZonedDateTime类 – 一个完整的日期时间,具有时区和已解析的UTC / Greenwich偏移量.在设计

如何在Java 8中获取UTC 0的日期?

我在Java中遇到Date类问题. Date类返回本地机器日期,但我需要UTC-0. 我用Google搜索并找到了很好的JavaScript解决方案,但对Java来说没用. 如何在Java 8中获取UTC 0的日期?解决方法:使用Java 8,您可以编写: OffsetDateTime utc = OffsetDateTime.now(ZoneOffset.UTC); 要回答您的评

java – 从SimpleTimeZone获取ZoneId

使用Java我有一个带有GMT偏移量的SimpleTimeZone实例和来自遗留系统的夏令时信息. 我想检索ZoneId以便能够使用Java 8时间API. 实际上,toZoneId返回没有夏令时信息的ZoneId SimpleTimeZone stz = new SimpleTimeZone( 2 * 60 * 60 * 1000, "GMT", Calendar.JANUARY,1,1,1, Calenda

在Java 8 / jsr310中格式化持续时间

我正在将项目从Joda-Time过渡到java8的本地时间库,我遇到了麻烦. 我一直无法找到持续时间的格式化程序.我希望有一个自定义字符串格式,例如HHH MM,其中75小时和15分钟的持续时间格式为“75 15”. 通过转换为句点并使用PeriodFormatter,使用Joda-Time很容易,但我无法在Java8中找到这

java – 将字符串解析为本地日期不使用所需的世纪

我正在使用这个DateTimeFormatter: DateTimeFormatter.ofPattern("ddMMYY") 我想解析字符串150790,我收到此错误: Unable to obtain LocalDate from TemporalAccessor: {DayOfMonth=15, MonthOfYear=7, WeekBasedYear[WeekFields[MONDAY,4]]=2090},ISO of type java.time.format.P

使用Java 8 Clock对类进行单元测试

Java 8引入了java.time.Clock,它可以用作许多其他java.time对象的参数,允许您向它们注入真实或假的时钟.例如,我知道您可以创建一个Clock.fixed(),然后调用Instant.now(时钟),它将返回您提供的固定Instant.这听起来非常适合单元测试! 但是,我无法弄清楚如何最好地使用它.我有一个类,

java.time.Clock.systemDefaultZone().getZone()vs java.util.TimeZone.getDefault().toZoneId()之间的任何区别?

鉴于java.time.Clock.systemDefaultZone().getZone()和java.util.TimeZone.getDefault().toZoneId()返回相同的输出,两者之间是否有任何区别. 例如这段代码 import java.time.Clock; import java.util.TimeZone; public class Main { public static void main(String[] args)

JUnit与Java 8时钟

想象一下,我想要测试以下课程: class Times { Clock cl = Clock.systemDefaultZone(); public int changeTime() { LocalDate ld = LocalDate.now(cl); if(ld.getMonth().equals(Month.OCTOBER)) return 1; if(ld.getMonth().equals

Java 8 DateTimeFormatter无法解析自身格式化的日期

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss z"); ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(Instant.now(), ZoneId.systemDefault()); // 2016-10-10 09:28:45 PDT String s = zonedDateTime.format(formatte

java – DateTimeFormatter不解析自定义日期格式

我有java DataTimeFormmater的问题. 我觉得我错过了一些但却无法弄清楚到底是什么. String format = "yyyy-MM-dd'T'HH:mm:ss[.S]'T'zxxx"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format); String date = "2017-07-05T12:28:36.4TGMT+03:00

java – 将GMT中的XMLGregorianCalendar转换为LocalDateTime太平洋时间

我正在尝试将以GMT / UTC格式发送的XMLGregorianCalendar转换为America / Los_Angeles时区的Java 8 LocalDateTime而没有运气. 这是我尝试过的,无法将时间转换为太平洋时间. //xmlDate is 2017-11-13T00:00:00Z ZonedDateTime zDateTime = xmlDate.toGregorianCalendar().toZonedD