python/jython 如何只修改日期时间字段的时间值(23:59:00)?

python/jython how to modify only time value (23:59:00) on datetime field?

我们有在 jython 代码中获取的字段

date1=object.getDate("FINISHDATE");

我需要相同的日期,但我们需要将该日期的时间值设置为值 23:59:00

如何做到这一点?

请不要使用 DATE.NOW 方法来检索当前时间,我需要从数据库中检索通常是未来的字段,所以我不想静态设置 DATE 部分而只设置 TIME 部分

谢谢

datetime 对象是不可变的:您永远无法修改它们的任何字段。您可以做的是构造一个新的 datetime 值,将原始对象的 date 部分与您想要的 time 值组合起来。像这样:

>>> from datetime import datetime, time
>>> date1 = datetime.now()
>>> date1
datetime.datetime(2016, 10, 28, 2, 8, 31, 655126)
>>> date2 = datetime.combine(date1.date(), time(23, 59))
>>> date2
datetime.datetime(2016, 10, 28, 23, 59)

更冗长的是,您还可以使用 date1.replace() 方法来更改任意数量的字段:

>>> date1.replace(hour=23, minute=59, second=0, microsecond=0)
datetime.datetime(2016, 10, 28, 23, 59)