gpt4 book ai didi

java - 如果我使用已弃用的 Dates 方法查看它们是否在同一天,可能会出现什么问题?

转载 作者:搜寻专家 更新时间:2023-11-01 03:39:20 24 4
gpt4 key购买 nike

目前,我有 2 个 Date 对象。两者都是在同一设备上使用相同的语言环境生成的。

1是用

生成的
SimpleDateFormat FORMATTER = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z");
Date date1 = FORMATTER.parse(date_string);

另一个是用

生成的
Date date2 = new Date();

现在,我想比较两个日期是否是同一天。

根据 Comparing two java.util.Dates to see if they are in the same day , 我可以用

Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(date1);
cal2.setTime(date2);
boolean sameDay = cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) &&
cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR);

由于我在资源有限的移动设备上运行代码,我想知道,如果我使用 Date 的弃用方法,可能会出现什么问题?

date1.getYear() == date2.getYear() && date1.getMonth() == date2.getMonth() && date1.getDate() == date2.getDate()

http://user.xmission.com/~goodhill/dates/datedeprecation.htm

我知道很多人谈论 Date 本身并不能很好地处理国际化。但是,在上面的场景中,是否有任何可靠的例子可以证明,如果我使用已弃用的方法,事情就会出错?

最佳答案

对于那个具体的例子,不太可能出现任何问题。 @Jim 有一个可能的场景,但它是一个(极端)边缘案例。而且我怀疑如果您在不合时宜的时间更改了默认时区,您可能会遇到与其他日期/时间 API 类似的问题。

但是,有很多其他(不同的)示例在您使用 Date API 时可能会出错。

现在,如果您知道 Date API 及其实现中的所有“技巧和陷阱”,您当然可以避免它们,并安全地使用已弃用的方法。但是:

  • 你是如何获得这些知识的?
  • 你怎么知道你已经获得了所有你需要的知识?
  • 你怎么知道下一个维护你的代码的人会知道这些知识?

Date 被弃用的原因是 Java 设计者认为由于一些设计问题太难不能正确使用。 IMO,最好尊​​重他们的判断。

Since I'm running the code in mobile devices which resources are limited ...

我不知道有任何确凿的证据表明 Calendar 类比使用 Date 使用更多的资源。将您的优化决策建立在纯粹的假设 上是一个坏主意,尤其是当优化有引入新错误的明确风险时。 (而且你问这个问题的事实表明你知道存在潜在的风险......)

最好的策略是避免在新代码中使用过时的类和方法。时期。并且只根据确凿的证据进行优化。

关于java - 如果我使用已弃用的 Dates 方法查看它们是否在同一天,可能会出现什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19063293/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com