首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Joda Time返回正确的日期,但Java Time不返回

Joda Time返回正确的日期,但Java Time不返回
EN

Stack Overflow用户
提问于 2020-05-07 13:15:55
回答 2查看 258关注 0票数 1

我支持一个大型企业应用程序,我们有两个使用LocalDate.now获取时间戳的类,一个使用joda time,一个使用Java time。通常我们每晚都会重启,但本周早些时候我们无法重启。在应用程序运行的第二天,使用joda time的类返回正确的日期(20200505),而使用Java time的类返回应用程序打开的日期(20200504)。

这两个类在每次调用方法时都会在方法中对LocalDate.now进行新的调用。

Java时间:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String date = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
//Use timestamp

Joda时间:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
LocalDate date = LocalDate.now();
String format1 = date.toString("MM/dd/yyyy");
//Use date

为什么LocalDate.now的Java8实现在服务器日期更改后返回错误的日期,而没有重新启动应用程序?

EN

回答 2

Stack Overflow用户

发布于 2020-05-07 20:48:08

有问题的类是一个枚举,在另一个调用中,枚举中字段的值被更改和保存,所以当应用程序进行时间戳替换时,占位符在第一次调用后不再在枚举中。谁知道为什么呢。修复了这个问题,Java时间没有问题。

票数 1
EN

Stack Overflow用户

发布于 2020-05-07 13:43:35

本地日期取决于默认时区,因为没有全局日期。我假设您的服务器中的时区已关闭,并且在午夜过后的几个小时内,它仍然返回昨天的日期。在配置服务器以UTC模式运行时,这是一个非常常见的配置错误,而实际时区更多地位于东侧。

https://docs.oracle.com/javase/8/docs/api/java/util/TimeZone.html#getDefault--

如果缓存的默认TimeZone可用,则返回其克隆。否则,该方法将执行以下步骤来确定默认时区。

如果平台时区ID为available.

  • Detect,则
  • 使用user.timezone属性值作为默认时区ID。如果给定或检测到的时区ID未知,则作为最后手段的平台时区和ID映射的源可能会随implementation.
  • Use GMT而有所不同。

您可以通过在更改默认时区后获取LocalDate.now()来轻松验证这一点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
TimeZone defaultTimeZone = TimeZone.getDefault();
try {
    Arrays.stream(TimeZone.getAvailableIDs())
        .map(TimeZone::getTimeZone)
        .forEach(timeZone -> {
            TimeZone.setDefault(timeZone);
            System.out.printf("%s in %s (%s)\n",
                LocalDate.now(), timeZone.getID(), timeZone.getDisplayName());
        });
} finally {
    TimeZone.setDefault(defaultTimeZone);
}

因此,问题是:您的服务器使用的时区是

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61658753

复制
相关文章
[Java]Java日期及时间库插件 -- Joda Time.
来到新公司工作也有一个多月了, 陆陆续续做了一些简单的项目. 今天做一个新东西的时候发现了 Joda Time的这个东西, 因为以前用的都是JDK原生的时间处理API, 大家都知道Java原生的时间处理的API一直都是不太好用, 所以这个有必要去学习下, 去总结下. 来到新公司学到的东西挺多的, 比如我们用了Guava, ElasticSearch, kafka/mns/ons, GuavaCache/Ehcache/Memcahe .... 等很多东西都是我以前没有接触过的. 所以待我学习的东西还有很多.
一枝花算不算浪漫
2018/05/18
2.4K0
Joda Time 使用
---- layout: default title: Joda Time 使用 category: [工具, Java] comments: true --- Joda Time 使用 对于系统的一些时间操作很是不方便,为了方便转化,有时候用date,有时候用timestmp,有时候用calendar,忍不住想更改了. 但是任务巨大,先把笔记收藏了,后面有机会再更改了.下面只是几个使用的例子. 1、 获取今天的开始时间:比如:2014-06-19 00:00:00 //joda
@坤的
2018/06/04
1.2K0
使用Joda-Time优雅的处理日期时间
在Java中处理日期和时间是很常见的需求,基础的工具类就是我们熟悉的Date和Calendar,然而这些工具类的api使用并不是很方便和强大,于是就诞生了Joda-Time这个专门处理日期时间的库。
哲洛不闹
2019/09/24
1.7K0
使用Joda-Time优雅的处理日期时间
Java时间处理神器之Joda-Time
以前总觉得在Java里面处理各种日期转换很麻烦,虽然我也封装过一些工具包,但是总体感觉还是不够完美,也使用过一些开源的apachecommons里面的时间处理工具类感觉还是不够灵活和强大。 第一次与Joda-Time有一面之缘的时候,是在我使用ELK框架给公司做日志收集分析检索系统的时候,我发现使用jruby重写的logstash里面使用的时间处理工具类是joda-time,当时就对这个框架有点好奇,只不过没太注意,至于为什么会发现?相信搞过ELK的都知道logstash的时间处理比较独特,或者说不了解的情
我是攻城师
2018/05/14
2.3K0
吐槽java时间那点事儿 Joda Time
Interval:这个类表示一个特定的时间跨度,将使用一个明确的时刻界定这段时间跨度的范围。Interval 为半开 区间,这表示由 Interval 封装的时间跨度包括这段时间的起始时刻,但是不包含结束时刻。
pollyduan
2019/11/04
9380
Java 日期类型比较没有返回正确的结果
最近在数据库处理的时候发现日期对比的时候没有返回正确的结果。 但是保存的时间实际上是相同的。 代码如下: if (!mlsPhoto.getDateUpdate().equals(photo.getDateUpdate())) { } 因为这里使用了 equals 方法。 问题解决 经过 Debug 后,这 2 个日期的纳秒数是不同的,查看下对象如下。 我们会发现其中一个对象有纳秒,一个对象没有。 但是 fastTime 是相同的。 如果使用 equals 那么这个方法比较的是毫秒,所以是不相等的。
HoneyMoose
2021/12/21
3.5K0
joda-time使用教程
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
suveng
2019/09/18
2.4K0
joda-time使用教程
Joda-Time几个用法小记
1, 获取每天的零点 DateTime dt=new DateTime().withMillisOfDay(0); System.out.println(dt.toString("yyyy-MM-dd HH:mm:ss"));//结果2016-09-09 00:00:00 2, 在每天的6:30处理一些东西 DateTime dt=new DateTime().withHourOfDay(6).withMinuteOfHour(30).withSecondOfMinute(0); System.out.pr
我是攻城师
2018/05/14
1.1K0
[ 后端篇 ] 10 - AWS API 返回 Endpoint request time out
设备访问服务端的时候,返回Endpoint request time out,在stackoverflow看到有类似的问题 Amazon API gateway timeout
程序手艺人
2019/05/07
1.6K0
[ 后端篇 ] 10 - AWS API 返回 Endpoint request time out
放弃 Calender优雅地使用Joda-Time吧Joda 大型项目Joda 简介Joda 和 JDK 互操作性Joda 的关键日期/时间概念
既然无法摆脱时间,为何不设法简化时间处理? 在编写企业应用程序时,我常常需要处理日期。并且在我的最新项目中日期计算尤其重要。 使用 java.util.Calendar 让我有些不安。如果您也曾使用这个类处理过日期/时间值,那么您就知道它使用起来有多麻烦。 因此当我接触到 Joda-Time — 面向 Java 应用程序的日期/时间库的替代选择 — 我决定研究一下。其结果是:我很庆幸我这么做了。 Joda-Time 令时间和日期值变得易于管理、操作和理解。事实上,易于使用是 Joda 的主要设计目标。
JavaEdge
2018/05/16
1.5K0
JavaUtil_10_joda-time_用法入门
二、参考资料 1. Joda-Time 2.jodaTime 的使用说明 3.强大易用的日期和时间库 Joda Time
shirayner
2018/08/10
1620
每日一课:强大易用的日期和时间类库Joda-Time
https://pan.baidu.com/s/1qYWsYIg
BUG弄潮儿
2022/06/30
2910
Joda Time项目和java8时间api
关于Joda Time其他的日期和时间api可以看其依赖包下的具体类,具体使用方式也很简单看齐javadoc即可。
哲洛不闹
2019/09/24
1K0
Joda Time项目和java8时间api
python的日期模块time,date
转义符对应意义如下 %a 本地简化星期名称 %A 本地完整星期名称 %b 本地简化的月份名称 %B 本地完整的月份名称 %c 本地相应的日期表示和时间表示 %d 月内中的一天(0-31) %H 24小时制小时数(0-23) %I 12小时制小时数(01-12) %j 年内的一天(001-366) %m 月份(01-12) %M 分钟数(00=59) %p 本地A.M.或P.M.的等价符 %S 秒(00-59) %U 一年中的星期数(00-53)星期天为星期的开始 %w 星期(0-6),星期天为星期的开始 %W 一年中的星期数(00-53)星期一为星期的开始 %x 本地相应的日期表示 %X 本地相应的时间表示 %y 两位数的年份表示(00-99) %Y 四位数的年份表示(000-9999) %Z 当前时区的名称 %% %号本身
py3study
2020/01/09
7800
python time时间,日期,时间
        timeArray = time.strptime(a, "%Y-%m-%d %H:%M:%S")
py3study
2020/01/15
2.9K0
(33) Joda-Time / 计算机程序的思维逻辑
Joda-Time 上节介绍了JDK API中的日期和时间类,我们提到了JDK API的一些不足,并提到,实践中有一个广泛使用的日期和时间类库,Joda-Time,本节我们就来介绍Joda-Time。俗话说,工欲善其事,必先利其器,Joda-Time就是操作日期和时间的一把利器。 Joda-Time的官网是http://www.joda.org/joda-time/。它的基本概念和工作原理与上节介绍的是类似的,比如说,都有时刻和年历的概念,都有时区和Locale的概念,主要工作,都是在毫秒和年月日等年历信息
swiftma
2018/01/31
1K0
Java 指定日期和日期间隔,返回间隔 之前 | 之后 的日期
public class DateUtil { /** * 指定日期和日期间隔,返回间隔之前的日期 * @param specifiedDay * @param interval * @return */ public static String getSpecifiedDayAgo(String specifiedDay, int interval){ return getSpecifiedDay(specifiedDay
大数据工程师-公子
2019/03/14
2.6K0
Vue3返回关闭弹窗不返回页面
完整代码 按钮和弹窗为vant组件,需自行引入 <template> <van-button @click="showPop()">点击弹窗</van-button> <van-popup v-model:show="state.isPop" position="bottom" :style="{ height: '30%' }" @close="addPopState()" /> </template> <script setup> import {
明知山
2022/05/05
3.4K0
Vue3返回关闭弹窗不返回页面
java.time API
Java 8 推出了全新的日期时间API,在教程中我们将通过一些简单的实例来学习如何使用新API。新API基于ISO标准日历系统,java.time包下的所有类都是不可变类型而且线程安全。
HLee
2021/07/26
1.2K0
java.time API
SpringBoot 项目 返回时间 日期、格式不正确 解决办法
  今天做一个 SpringBoot+Vue 的一个练习项目,想要搞一个创建该账号的时间,记录下来,然后展示在网页中,但是遇到了很多的问题,先介绍以下,我们之前怎么做的。
RAIN7
2022/10/08
2.3K0
SpringBoot 项目 返回时间 日期、格式不正确 解决办法

相似问题

Joda-Time返回错误的日期

10

Joda Time :日期转换错误

11

Joda-Time :日期计算

12

Joda time plusDays出错日期

215

Joda time Instant到Java time Instant的转换

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文