用java格式化当前日期

用java格式化当前日期,java,Java,我想将当前日期格式化为一种格式,我可以在下面几行中完成 DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd:HH:mm:ss"); Date currentDate = new Date(); String currentDateString = dateFormat.format(currentDate); try { currentDate = dateFormat.parse(currentDateString); }

我想将当前日期格式化为一种格式,我可以在下面几行中完成

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd:HH:mm:ss");
Date currentDate = new Date();
String currentDateString = dateFormat.format(currentDate);
try {
    currentDate = dateFormat.parse(currentDateString);
} catch (ParseException e) {

}

但是有没有更清晰、更整洁的方法呢?

使用Java8和新类,并格式化为
字符串。不要使用Java 7及更低版本中的
Date
。那个旧的API乱七八糟

LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd:HH:mm:ss")));
输出:

2014-06-08:14:43:01

使用Java 8和新类,并将其格式化为
字符串
。不要使用Java 7及更低版本中的
Date
。那个旧的API乱七八糟

LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd:HH:mm:ss")));
输出:

2014-06-08:14:43:01

使用Java 8和新类,并将其格式化为
字符串
。不要使用Java 7及更低版本中的
Date
。那个旧的API乱七八糟

LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd:HH:mm:ss")));
输出:

2014-06-08:14:43:01

使用Java 8和新类,并将其格式化为
字符串
。不要使用Java 7及更低版本中的
Date
。那个旧的API乱七八糟

LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd:HH:mm:ss")));
输出:

2014-06-08:14:43:01

您不必迁移到Java8。如果使用Java6或Java7,我可以使用。 JSR-310 FormJava8是从零开始的,但是有一个“受Joda Time启发”的API

这里有一个例子:

LocalDate date = LocalDate.now();
DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd:HH:mm:ss");
String str = date.toString(fmt);
// might output "6 October, 2013"

您不必迁移到Java8。如果使用Java6或Java7,我可以使用。 JSR-310 FormJava8是从零开始的,但是有一个“受Joda Time启发”的API

这里有一个例子:

LocalDate date = LocalDate.now();
DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd:HH:mm:ss");
String str = date.toString(fmt);
// might output "6 October, 2013"

您不必迁移到Java8。如果使用Java6或Java7,我可以使用。 JSR-310 FormJava8是从零开始的,但是有一个“受Joda Time启发”的API

这里有一个例子:

LocalDate date = LocalDate.now();
DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd:HH:mm:ss");
String str = date.toString(fmt);
// might output "6 October, 2013"

您不必迁移到Java8。如果使用Java6或Java7,我可以使用。 JSR-310 FormJava8是从零开始的,但是有一个“受Joda Time启发”的API

这里有一个例子:

LocalDate date = LocalDate.now();
DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd:HH:mm:ss");
String str = date.toString(fmt);
// might output "6 October, 2013"


这和OP想要的格式不一样,是吗?您并没有真正减少代码行数-只是内联了一些行。更改了格式。而且,不,它不是“仅仅内联”,而是使用Java8API。既然OP要求“清晰”和“整洁”,那就是我的建议。我完全支持Java8!我认为我们需要弄清楚OP到底想要什么-问题是将
日期
格式化为
字符串
,然后解析回
日期
。这个答案是不同的。有人可能会提到,新的Java8日期/时间处理和几个新的类是一个重大的改进(清晰度)。这不是OP现在想要的格式,是吗?您并没有真正减少代码行数-只是内联了一些行。更改了格式。而且,不,它不是“仅仅内联”,而是使用Java8API。既然OP要求“清晰”和“整洁”,那就是我的建议。我完全支持Java8!我认为我们需要弄清楚OP到底想要什么-问题是将
日期
格式化为
字符串
,然后解析回
日期
。这个答案是不同的。有人可能会提到,新的Java8日期/时间处理和几个新的类是一个重大的改进(清晰度)。这不是OP现在想要的格式,是吗?您并没有真正减少代码行数-只是内联了一些行。更改了格式。而且,不,它不是“仅仅内联”,而是使用Java8API。既然OP要求“清晰”和“整洁”,那就是我的建议。我完全支持Java8!我认为我们需要弄清楚OP到底想要什么-问题是将
日期
格式化为
字符串
,然后解析回
日期
。这个答案是不同的。有人可能会提到,新的Java8日期/时间处理和几个新的类是一个重大的改进(清晰度)。这不是OP现在想要的格式,是吗?您并没有真正减少代码行数-只是内联了一些行。更改了格式。而且,不,它不是“仅仅内联”,而是使用Java8API。既然OP要求“清晰”和“整洁”,那就是我的建议。我完全支持Java8!我认为我们需要弄清楚OP到底想要什么-问题是将
日期
格式化为
字符串
,然后解析回
日期
。这个答案是不同的。有人可能会提到,新的Java8日期/时间处理和几个新的类是一个重大的改进(清晰度)。但是这段代码做什么呢?您正在将日期对象转换为字符串并返回到日期对象。所以最后你得到的是同一个物体。@Dinal,不,甚至忽略第二个分数的损失,当当前日期时间在默认区域设置的夏令时转换期间落下时,您不能保证返回相同的日期时间,因为可能有两个日期时间对应于特定的格式化日期字符串。@MikeSamuel,我同意可能有1秒或2秒的差异。当我说同样的对象时,我不是指.equals()。但我找不到上述代码的任何用途。如果他将其用于任何显示目的,他可能会使用转换后的字符串。@Dinal,差异可能高达1小时1秒。但这段代码的作用是什么?您正在将日期对象转换为字符串并返回到日期对象。所以最后你得到的是同一个物体。@Dinal,不,甚至忽略第二个分数的损失,当当前日期时间在默认区域设置的夏令时转换期间落下时,您不能保证返回相同的日期时间,因为可能有两个日期时间对应于特定的格式化日期字符串。@MikeSamuel,我同意可能有1秒或2秒的差异。当我说同样的对象时,我不是指.equals()。但我找不到上述代码的任何用途。如果他将其用于任何显示目的,他可能会使用转换后的字符串。@Dinal,差异可能高达1小时1秒。但这段代码的作用是什么?您正在将日期对象转换为字符串并返回到日期对象。所以最后你得到了相同的对象。@Dinal,不,即使忽略第二个分数的损失,当当前日期时间为fal时,你也不能保证得到相同的日期时间