Answers:
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());
}
从这里取
Calendar
比这更可取Date
?
使用DateFormat
实现;例如SimpleDateFormat
。
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
String data = df.format(new Date());
LocalDate.now()
.toString()
2017-01-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-01-23
默认情况下,您会获得标准ISO 8601中的字符串格式。
对于其他格式,请使用java.time.format.DateTimeFormatter
该类。
该java.time框架是建立在Java 8和更高版本。这些类取代麻烦的老传统日期时间类,如java.util.Date
,Calendar
,和SimpleDateFormat
。
现在处于维护模式的Joda-Time项目建议迁移到java.time类。
要了解更多信息,请参见Oracle教程。并在Stack Overflow中搜索许多示例和说明。规格为JSR 310。
您可以直接与数据库交换java.time对象。使用与JDBC 4.2或更高版本兼容的JDBC驱动程序。不需要字符串,不需要类。java.sql.*
在哪里获取java.time类?
该ThreeTen-额外项目与其他类扩展java.time。该项目为将来可能在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");
而DateTime的库是:
导入org.joda.time.DateTime;
DateTime
从哪里来的?关于堆栈溢出的答案应该有一些解释,因为该站点不只是片段库。
大多数答案是有效的。对日期处理的新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")
两者将返回相同的结果。
Clock
Java 8中的实现与旧类完全相同。只有在Java 9中,才能实现新的实现,该实现能够以高达10微秒的分辨率捕获当前时刻。
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;
}
}
String
格式的日期传递给函数。