如何在Java中将当前日期转换为字符串?
答案 0 :(得分:201)
String date = new SimpleDateFormat("dd-MM-yyyy").format(new Date());
答案 1 :(得分:59)
// 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());
}
取自here
答案 2 :(得分:25)
// On the form: dow mon dd hh:mm:ss zzz yyyy
new Date().toString();
答案 3 :(得分:17)
使用DateFormat
实施;例如SimpleDateFormat
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
String data = df.format(new Date());
答案 4 :(得分:9)
更快:
String date = FastDateFormat.getInstance("dd-MM-yyyy").format(System.currentTimeMillis( ));
答案 5 :(得分:7)
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的maintenance mode项目建议迁移到java.time类。
要了解详情,请参阅Oracle Tutorial。并搜索Stack Overflow以获取许多示例和解释。规范是JSR 310。
您可以直接与数据库交换 java.time 对象。使用符合JDBC driver或更高版本的JDBC 4.2。不需要字符串,不需要java.sql.*
类。
从哪里获取java.time类?
ThreeTen-Extra项目使用其他类扩展java.time。该项目是未来可能添加到java.time的试验场。您可以在此处找到一些有用的课程,例如Interval
,YearWeek
,YearQuarter
和more。
答案 6 :(得分:0)
大部分答案都是有效的。 日期处理的新JAVA API修改确保了Java日期处理中的一些早期歧义减少。
您将收到类似电话的弃用消息。
new Date() // deprecated
上面的调用让开发人员假设一个新的Date对象将为Date对象提供当前时间戳。此行为在其他Java API类中不一致。
这样做的新方法是使用日历实例。
new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()
这里的命名惯例也不完美,但这种组织非常有条理。 对于像我这样的人来说,如果听起来似乎是合乎逻辑的话,他们很难把事情搞砸但却永远不会忘记,这是一个很好的方法。
这更像是现实生活的同义词
另一种方法是使用Joda time API
new DateTime().toString("yyyy-MM-dd")
或非常明显的
new DateTime(Calendar.getInstance().getTime()).toString("yyyy-MM-dd")
两者都会返回相同的结果。
答案 7 :(得分:0)
时间为YYYY-MM-dd
String time = new DateTime( yourData ).toString("yyyy-MM-dd");
DateTime图书馆是:
import org.joda.time.DateTime;
答案 8 :(得分:-3)
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;
}
}