我有一个存储当前时间的 DateTime 对象 DT。当我打印 DT 时,我希望它只打印时间部分,即 HH-MM-SS(H = 小时,M = 分钟,S = 秒)并忽略日期部分。
我怎样才能做到这一点 ?就此而言,是否甚至可以创建一个仅包含 HH-MM-SS 而与 date 无关的日期时间对象?如果这是真的,那么我可以简单地打印它而不是提取 HH-MM-SS 部分。
谢谢。
如果你只想要时间,你应该使用 aLocalTime
而不是 a DateTime
。您可以使用DateTime.toLocalTime()
来获取现有DateTime
.
如果你真的想在格式化DateTime
时保留但只显示时间部分,你可以创建一个只包含时间部分的模式,但我通常认为这是一种设计味道。DateTimeFormatter
您可以使用 java.util.Date 包中的 Java 日期格式化程序。
像 :
日期 todaysDate = new java.util.Date(); 1. // 将日期格式化为 yyyy-MM-dd HH:mm:ss 例如 2008-10-10 11:21:10 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 字符串 formattedDate = formatter.format(todaysDate); 2. // 将日期格式化为 yyyy-MM-dd 例如 2008-10-10 formatter = new SimpleDateFormat("yyyy-MM-dd"); formattedDate = formatter.format(todaysDate); 3. // 将日期格式化为 MM/dd/yyyy 例如 10/10/2008 formatter = new SimpleDateFormat("MM/dd/yyyy"); formattedDate = formatter.format(todaysDate);
使用Java,您可以这样做
Date obj = new Date() ;
System.out.println(new SimpleDateFormat("hh:mm:ss").format(obj)) ;
但这可能是一个昂贵的电话。但是 jodatime 提供了 LocalTime ,您可以尝试一下。