已关闭。此问题需要details or clarity。目前不接受回答。
**要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
6天前关闭
Improve this question的
我是一个编程新手,正在练习实现Oracle文献。我选择了时间编程,并试图格式化和减去当前时间,然后显示减少的时间。我的代码是
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
class Workingg {
public static void main(String[] args){
LocalDateTime datetimeobj = LocalDateTime.now();
DateTimeFormatter formatobj = DateTimeFormatter.ofPattern("MM-dd-yyyy HH:mm:ss");
LocalDateTime newdatetimeobj = datetimeobj.format(formatobj);
String wasminute = newdatetimeobj.minusMinutes( 2 ).toString();
System.out.println(wasminute);
}
}
字符串
请让我知道我做错了什么,什么是正确的格式,然后减去格式化的时间。感谢那些谁回应这一点。
2条答案
按热度按时间zc0qhyus1#
tl;dr
字符串
格式化,然后减去格式化时间
你把它弄反了。首先执行日期时间数学运算,然后生成文本。
详情
第一个月
format
方法返回文本,一个String
对象。然后你尝试将该字符串赋值给一个声明为保存LocalDateTime
的变量。**但是LocalDateTime
不是String
。**所以你的赋值失败,编译器错误告诉你类型不匹配。日期时间对象不是文本,所以它没有格式。日期时间对象可以生成表示其值的文本;这就是
format
方法所做的。但该文本不存在于日期时间对象中。顺便说一句,我无法想象调用
LocalDateTime.now
是明智的。该类缺少时区或UTC偏移量的上下文。因此该类不能表示时刻,时间轴上的点。通过LocalDateTime
跳回两分钟可能会导致某些时区中某些时刻的错误时间。相反,使用
Instant
、OffsetDateTime
或ZonedDateTime
来表示矩。型
减去两分钟。
型
生成文本
在完成日期-时间数学运算之后,您可以生成文本。
通过调用
toString
,生成标准ISO 8601格式的文本,明智地扩展以在方括号中附加时区名称。或者使用
DateTimeFormatter
生成自定义格式的文本。rqdpfwrv2#
您已经有一个
LocalDateTime
对象存储在datetimeobj
上,因此只需将minusMinute
直接应用于它:字符串
如果你想解析一个String,那么你可以使用
DateTimeFormatter
:型
或者如果你想输出更新的
LocalDateTime
:型