如何在 Java 中将当前日期转换为字符串?

如何在 Java 中将当前日期转换为字符串?

248723 次浏览
// On the form: dow mon dd hh:mm:ss zzz yyyy
new Date().toString();

使用 DateFormat实现; 例如,SimpleDateFormat

DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
String data = df.format(new Date());
// GET DATE & TIME IN ANY FORMAT
import java.util.Calendar;
import java.text.SimpleDateFormat;
public static final String DATE_FORMAT_NOW = "yyyy-MM-dd HH:mm:ss";


public static String now() {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
return sdf.format(cal.getTime());
}

取自 给你

String date = new SimpleDateFormat("dd-MM-yyyy").format(new Date());

更快:

String date = FastDateFormat.getInstance("dd-MM-yyyy").format(System.currentTimeMillis( ));

博士

LocalDate.now()
.toString()

2017-01-23

最好显式地指定所需的/预期的时区。

LocalDate.now( ZoneId.of( "America/Montreal" ) )
.toString()

爪哇时间

Java8和更高版本的现代方法是使用 爪哇时间框架。

指定时区,因为世界各地的日期在任何给定的时刻都不同。

ZoneId zoneId = ZoneId.of( "America/Montreal" ) ;  // Or ZoneOffset.UTC or ZoneId.systemDefault()
LocalDate today = LocalDate.now( zoneId ) ;
String output = today.toString() ;

2017-01-23

默认情况下,您将获得标准 ISO 8601格式的 String。

对于其他格式,请使用 java.time.format.DateTimeFormatter类。


关于 爪哇时间

< em > java.time 框架内置于 Java8及更高版本中。这些类取代了令人讨厌的旧的 遗产日期时间类,如 java.util.DateCalendarSimpleDateFormat

现在在 维修模式中的 尤达时间项目建议迁移到 爪哇时间类。

要了解更多,请参阅 < em > Oracle 教程 。并搜索堆栈溢出许多例子和解释。规范是 JSR 310

您可以直接与数据库交换 爪哇时间对象。使用与 JDBC 4.2或更高版本兼容的 JDBC 驱动程序。不需要字符串,不需要 java.sql.*类。

从哪里获得 java.time 类?

< strong > Three Ten-Ultra 项目使用其他类扩展 java.time。这个项目是将来可能添加 java.time 的试验场。您可以在这里找到一些有用的类,比如 IntervalYearWeekYearQuarter更多

大多数答案都是有效的。 用于日期处理的新的 JAVA API 修改确保减少了 JAVA 日期处理中早期的一些模糊性。

对于类似的调用,您将收到一条不推荐的消息。

new Date() // deprecated

上面的调用让开发人员假设一个新的 Date 对象将提供具有当前时间戳的 Date 对象。这种行为在其他 JavaAPI 类中并不一致。

实现这一点的新方法是使用 日历实例。

new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()

这里的变数命名原则也不完美,但组织得很好。 对于像我这样的人来说,这是一个很好的方法,虽然我很难把事情搞砸,但是如果它听起来或者看起来合乎逻辑,我就永远不会忘记它。

这更像是现实生活的同义词

  1. 我们得到一个 Calendar 对象并在其中查找时间。 (你一定想知道没有人能从日历中得到时间,这就是为什么我说它不完美。但这是另一个话题 全部)
  2. 然后,我们希望日期采用简单的 Text 格式,因此我们使用 SimpleDateFormat 实用工具类来帮助我们格式化步骤1中的 Date。我在格式中使用了 yyyy、 MM、 dd 作为参数。支持的日期格式参数

另一种方法是使用 Joda time API

new DateTime().toString("yyyy-MM-dd")

或者更明显的

new DateTime(Calendar.getInstance().getTime()).toString("yyyy-MM-dd")

两者都将返回相同的结果。

public static Date getDateByString(String dateTime) {
if(dateTime==null || dateTime.isEmpty()) {
return null;
}
else{
String modified = dateTime + ".000+0000";
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Date dateObj = new Date();
Date dateObj1 = new Date();
try {
if (dateTime != null) {
dateObj = formatter.parse(modified);
}


} catch (ParseException e) {
e.printStackTrace();
}


return dateObj;
}


}

时间为 YYYY-MM-dd

String time = new DateTime( yourData ).toString("yyyy-MM-dd");

日期时间库是:

导入 org.joda.time