我试图在调用LocalTime时使用getter在HH:mm
中获取它。目前的情况是:
private LocalTime time;
public LocalTime getTime() {
return time;
}
我想让它返回HH: mm
中的时间,因为现在它是HH: mm: SS. s
。我想弄乱日期时间格式化程序,但我搞不清楚。这是我的:
private LocalTime time;
public LocalTime getTime() {
DateTimeFormatter formatDateTime = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
LocalTime localFormattedTime = LocalTime.parse(time, formatDateTime);
return localFormattedTime;
}
试试这样的:
String localTimeString = "23:59:59";
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm:ss");
try {
TemporalAccessor ta = dtf.parse(localTimeString);
LocalTime lt = LocalTime.from(ta);
LOGGER.info("lt: {}", lt);
} catch (RuntimeException re) {
LOGGER.error("Unable to parse local time string: [{}]", localTimeString, re);
}
有关DateTimeFormatter支持的模式的详细信息,请参阅DateTimeFormatter上的Java文档。
您还可以使用DateTimeFormatter将LocalTime格式化为字符串形式,如下所示:
String localTimeAsString = dtf.format(lt)
LOGGER.info("LocalTime as string: {}", localTimeAsString);
LocalTime没有日期部分,只有时间部分
您不能为LocalDate
、LocalTime指定格式,它使用标准格式,您无法更改它
如果需要特定格式,则必须使用String,而不是LocalDate
、LocalTimeLocalDate Time
YCF的回答是正确且中肯的。我之所以写下这个答案,是因为我经常看到有人问我类似的问题(为什么我的日期/时间没有以自定义方式打印出来)。
请注意< code>LocalDate 、< code>LocalTime 、< code>LocalDateTime等。每个都有自己的< code>toString()实现,无论您做什么,只要您打印它们的对象,就会调用它们的< code>toString()方法,因此总是打印它们的默认表示。如果您希望以自定义方式打印这些对象,您有两种选择:
LocalDate
的对象中获取它们的元素(例如年、月和日)并通过以自定义方式排列来打印它们。DateTimeForware
或遗留SimpleDateFormat
)并以自定义方式获取表示日期/时间对象的字符串。为了使代码可重用和干净,您更喜欢第二种方法。
以下示例说明了相同的情况:
class Name {
private String firstName;
private String lastName;
public Name() {
firstName = "";
lastName = "";
}
public Name(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
@Override
public String toString() {
return firstName + " " + lastName;
}
}
class NameFormatter {
// Returns a name (e.g. First Last) as F. Last
public static String patternIntialsLast(Name name) {
if (name.getFirstName().length() > 1) {
return name.getFirstName().charAt(0) + ". " + name.getLastName();
}
return name.toString();
}
// Returns a name (e.g. First Last) as Last F.
public static String patternLastInitials(Name name) {
if (name.getFirstName().length() > 1) {
return name.getLastName() + " " + name.getFirstName().charAt(0) + ".";
}
return name.toString();
}
// Returns a name (e.g. First Last) as Last First
public static String patternLastIFirst(Name name) {
return name.getLastName() + ", " + name.getFirstName();
}
}
public class Main {
public static void main(String[] args) {
Name name = new Name("Foo", "Bar");
System.out.println("Default format:");
System.out.println(name);// It will always print what name.toString() returns
// If you want to print name in different formats use NameFormatter e.g.
System.out.println("\nIn custom formats:");
String strName1 = NameFormatter.patternIntialsLast(name);
System.out.println(strName1);
String strName2 = NameFormatter.patternLastIFirst(name);
System.out.println(strName2);
String strName3 = NameFormatter.patternLastInitials(name);
System.out.println(strName3);
}
}
输出:
Default format:
Foo Bar
In custom formats:
F. Bar
Bar, Foo
Bar F.
现在,再YCF_L一遍答案,这一次,你知道你必须按如下方式实现你的方法:
public String getTime() {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm");
return formatter.format(ldt);
}
一个快速演示:
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
public class Main {
// Now
static LocalDateTime ldt = LocalDateTime.of(LocalDate.now(), LocalTime.now());
public static void main(String[] args) {
System.out.println(getTime());
}
public static String getTime() {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm");
return formatter.format(ldt);
}
}
输出:
22:23
我有一个
JSON MyJSONObject: myJSONObject(console.log(data))的字符串:
这个程序的输出与预期的一样,它给出2014-12-01 17:30:15。 但是当我在iFormat中将hh替换为hh(与outputformat相同)时,它给出的输出为12Out格式2014-12-01 05:30:15 如果我将两者都转换为小写,也会发生同样的情况。为什么会出现这种类型的不一致?
本文向大家介绍如何将Java LocalDateTime格式化为ISO_DATE_TIME格式,包括了如何将Java LocalDateTime格式化为ISO_DATE_TIME格式的使用技巧和注意事项,需要的朋友参考一下 首先,设置日期: 现在,将日期时间格式化为ISO_DATE_TIME格式: 示例 输出结果
问题内容: 我有一些格式不一致的现有代码-有时两个空格用于缩进,有时四个空格,以此类推。代码本身是正确的,并且经过了严格的测试,但是格式却很糟糕。 在线上是否有一个地方,我可以简单地粘贴一段Python代码并自动为我缩进/设置格式?或者,是否可以执行类似的操作,并用格式化的版本覆盖每个文件? 问题答案: 编辑:如今,我建议使用autopep8,因为它不仅可以纠正缩进问题,而且(根据您的判断)可以使
我正在创建一个Lua库来帮助处理发送和接收DNS请求,目前正在阅读这个(DNS协议RFC),但我不知道如何正确格式化请求。例如,我是否必须指定消息的长度?我该怎么做? 我了解,从我的Wireshark检查,我应该也包括选项之后。我还在响应中看到一个;这是否意味着我只需在添加值之前,将请求名称终止为零? 我特别谈论的部分是RFC的4.1.3。 一些注意事项:我使用个人服务器对此进行了测试,并在查询部