我如何在Java中将当前日期转换为字符串?
String date = new SimpleDateFormat("dd-MM-yyyy").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());
}
以下内容摘自此处
// 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());
LocalDate.now()
.toString()
2017年1月23日
最好明确指定所需/期望的时区。
LocalDate.now( ZoneId.of( "America/Montreal" ) )
.toString()
现代的方式是使用Java 8及更高版本的java.time框架。
在指定日期时区时,要考虑到时间在世界各地的变化。
ZoneId zoneId = ZoneId.of( "America/Montreal" ) ; // Or ZoneOffset.UTC or ZoneId.systemDefault()
LocalDate today = LocalDate.now( zoneId ) ;
String output = today.toString() ;
2017年1月23日
默认情况下,您会得到一个标准的ISO 8601格式字符串。
要使用其他格式,请使用java.time.format.DateTimeFormatter
类。
java.time 框架是在 Java 8 及以上版本中内置的。这些类取代了麻烦的旧 legacy 日期时间类,如 java.util.Date
、Calendar
和 SimpleDateFormat
。
Joda-Time 项目现在处于维护模式,建议迁移到 java.time 类。
了解更多信息,请查看Oracle教程。并搜索 Stack Overflow 获取许多示例和解释。规范是 JSR 310。
您可以直接与数据库交换 java.time 对象。使用符合 JDBC 4.2 或更高版本的 JDBC 驱动程序。不需要字符串,也不需要 java.sql.*
类。
如何获取 java.time 类?
Interval
, YearWeek
, YearQuarter
和更多。String date = FastDateFormat.getInstance("dd-MM-yyyy").format(System.currentTimeMillis( ));
时间格式为YYYY-MM-dd
String time = new DateTime( yourData ).toString("yyyy-MM-dd");
日期时间库是:
import org.joda.time.DateTime;
new Date() // deprecated
new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()
new DateTime().toString("yyyy-MM-dd")
new DateTime(Calendar.getInstance().getTime()).toString("yyyy-MM-dd")
两者将返回相同的结果。
java.util.Date
、java.util.Calendar
和java.text.SimpleTextFormat
等老旧的日期时间类现已成为遗留系统,被Java.time类所取代。此外,Joda-Time项目现已进入维护模式,该团队建议进行迁移至Java.time。 - Basil BourqueClock
实现与旧类完全相同。只有在Java 9中才会出现新的实现,能够以纳秒级的精度捕获当前时刻。 - Basil Bourquepublic 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;
}
}