- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在何时何地哪个更可取?
我不知道它们之间到底有什么实际区别。
来自 LocalDateTime 的文档
...Time is represented to nanosecond precision. For example, the value "2nd October 2007 at 13:45.30.123456789" can be stored in a LocalDateTime.
我假设 LocalDateTime 也可以接受直到纳秒。所以我认为,我可以用 LocalDateTime 替换我的代码,这些被声明为 TimeStamp。如果我错了,请纠正我。
场景:我们计划用 Java-8 升级我们的项目。使用 JAVA-8 的新功能(例如:Lambda、Streams 等)修改旧代码样式。但是我们在决定日期和时间时遇到了麻烦。大多数带有 java.util.Date
的代码已更改为 java.time.LocalDate
或 java.time.LocalDateTime
。对于 TimeStamp 的情况,我不知道这个问题
我们应该用 LocalDateTime 替换它们吗?
最佳答案
在当前的开发中,您应该更喜欢 LocalDateTime
和其他 Java8 时间类。
它们的优势在于,时间点定义 (Instant
) 和持续时间 (Duration
) 或基于片段的定义 (LocalDate
, LocalTime
).
它们允许一组非常好的操作/计算逻辑方法(与 java.util.Date
不同)。
还介绍了单位转换 (Duration.toDays()
)。
最后但同样重要的是涵盖了时区 hell (ZonedDateTime
)。
一个小缺点是缺少很多您可能想要利用的第三方 API 的支持。但这应该只是时间问题,从 Java8 时间 API 到 Calendar/Date 的转换绝非易事。
如果你有一个成熟的软件,那么在你利用上面提到的一些优势之前,用基于 Java8 的接口(interface)替换旧的基于日期/日历的接口(interface)只是一个风险。
如果您想用 Java8 时间工具箱之外的东西替换旧的 TimeStamp
参数,那么您可以使用 Instant
、LocalDateTime
或分区日期时间
。不同之处在于 Instant
值在计算时作为基于 ZoneOffset.UTC
处理,而 LocalDateTime
根据定义没有任何时区关系.
提示:如果某些事情发生在 2018-01-02 10:24:12
时,使用 LocalDateTime
是一件非常好的事情例如系统印度和美国的制度。在几乎所有其他情况下,您可能更喜欢使用 Instant
或 ZonedDateTime
明确定义时区。
关于Java8 : LocalDateTime or TimeStamp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41998144/
标题基本上说明了一切。 我主要对更新案例感兴趣。假设我们正在尝试更新具有时间戳记字段的记录,并且我们希望将该字段设置为记录更新的时间戳记。有没有办法做到这一点? 最佳答案 经过一些实验,我找到了合适的
我正在学习一门类(class),其中我必须将日期转换为 unix 时间戳。 import pandas as pd df = pd.read_csv('file.csv') print type(df
我在两个不同的数据库中运行了相同的语句:我的本地数据库和 Oracle Live SQL . CREATE TABLE test( timestamp TIMESTAMP DEFAULT SY
我在两个不同的数据库中运行了相同的语句:我的本地数据库和 Oracle Live SQL . CREATE TABLE test( timestamp TIMESTAMP DEFAULT SY
bson.timestamp.Timestamp需要两个参数:time 和 inc。 time 显然是存储在 Timestamp 中的时间值。 什么是公司?它被描述为递增计数器,但它有什么用途呢?它应
2016-08-18 04:52:14 是我从数据库中获取的时间戳,用于跟踪我想从哪里加载更多记录,这些记录小于该时间 这是代码 foreach($explode as $stat){
我想将 erlang:timestamp() 的结果转换为正常的日期类型,公历类型。 普通日期类型表示“日-月-年,时:分:秒”。 ExampleTime = erlang:timeStamp(),
我想将 erlang:timestamp() 的结果转换为正常的日期类型,公历类型。 普通日期类型表示“日-月-年,时:分:秒”。 ExampleTime = erlang:timeStamp(),
我是 Java 新手。我正在使用两个 Timestamp 对象 dateFrom和dateTo 。我想检查是否dateFrom比 dateTo早 45 天。我用这个代码片段来比较这个 if(dateF
在将 panda 对象转换为时间戳时,我遇到了这个奇怪的问题。 Train['date'] 值类似于 01/05/2014,我正在尝试将其转换为 linuxtimestamp。 我的代码: Train
我正在努力让我的代码运行。时间戳似乎有问题。您对我如何更改代码有什么建议吗?我看到之前有人问过这个问题,但没能成功。 这是我在运行代码时遇到的错误:'Timestamp' object has no
我正在尝试运行以下查询: SELECT startDate FROM tests WHERE startDate BETWEEN TIMESTAMP '1555248497'
我正在使用 Athena 查询以 bigInt 格式存储的日期。我想将其转换为友好的时间戳。 我试过了: from_unixtime(timestamp DIV 1000) AS readab
最近进行了一些数据库更改,并且 hibernate 映射出现了一些困惑。 hibernate 映射: ...other fields 成员模型对象: public class Mem
rng = pd.date_range('2016-02-07', periods=7, freq='D') print(rng[0].day) print(rng[0].month) 7 2 我想要
rng = pd.date_range('2016-02-07', periods=7, freq='D') print(rng[0].day) print(rng[0].month) 7 2 我想要
我必须在我的数据库中保存 ServerValue.TIMESTAMP 但它必须是一个字符串。当我键入 String.valueOf(ServerValue.TIMESTAMP); 或 ServerVa
在我的程序中,每个表都有一列 last_modified: last_modified int8 DEFAULT (date_part('epoch'::text, now()::timestamp)
我想将此时间戳对象转换为日期时间此对象是在数据帧上使用 asfreq 后获得的这是最后一个索引 Timestamp('2018-12-01 00:00:00', freq='MS') 想要的输出 2
我有一个包含时间序列传感器数据的大表。大型是指分布在被监控的各个 channel 中的从几千到 10M 的记录。对于某种传感器类型,我需要计算当前读数和上一个读数之间的时间间隔,即找到当前读数之前的最
我是一名优秀的程序员,十分优秀!