# 1 楼答案 假设可以将提供的天数转换为秒(为了方便起见,省略了一些小数部分),下面的代码将天数转换为秒,并根据本地机器(根据LocalDateTime.now())从当前时间中减去秒数(如持续时间): public static void main(String[] args) { double daysAgo = 3.47; LocalDateTime timeAgo = getTimeAgo(daysAgo); System.out.println("Time ago: " + timeAgo); } public static LocalDateTime getTimeAgo(double daysAgo) { long secondsAgo = secondsFromDays(daysAgo); Duration duration = Duration.of(secondsAgo, ChronoUnit.SECONDS); LocalDateTime now = LocalDateTime.now(); System.out.println("Starting time: " + now); return now.minus(duration); } public static long secondsFromDays(double days) { return (long) (days * 24 * 60 * 60); } 结果: Starting time: 2021-06-28T22:31:16.242040100 Time ago: 2021-06-25T11:14:28.242040100
# 2 楼答案 在内部,Java日期存储为long,如文档所述,它表示“自被称为“历元”的标准基准时间(即1970年1月1日00:00 GMT)以来的毫秒数” 通过调用日期的getTime()方法,可以从日期中获取长值 可以使用long的构造函数创建long的日期,例如new Date(myLongValue) 因此,你可以计算一天中的毫秒数,将当前时间作为一个长时间,从中减去(3.47*millissecondsinday),然后使用结果值来构造一个新的日期 请注意,“一天中的毫秒数”可能是一个问题,这取决于您需要的准确性,以及您希望应用此方法的情况
# 1 楼答案
假设可以将提供的天数转换为秒(为了方便起见,省略了一些小数部分),下面的代码将天数转换为秒,并根据本地机器(根据LocalDateTime.now())从当前时间中减去秒数(如持续时间):
结果:
# 2 楼答案
在内部,Java日期存储为long,如文档所述,它表示“自被称为“历元”的标准基准时间(即1970年1月1日00:00 GMT)以来的毫秒数”
通过调用日期的
getTime()
方法,可以从日期中获取长值可以使用long的构造函数创建long的日期,例如
new Date(myLongValue)
因此,你可以计算一天中的毫秒数,将当前时间作为一个长时间,从中减去(3.47*millissecondsinday),然后使用结果值来构造一个新的日期
请注意,“一天中的毫秒数”可能是一个问题,这取决于您需要的准确性,以及您希望应用此方法的情况