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

use*_*299 108 java string formatting date

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

Ian*_*ton 210

String date = new SimpleDateFormat("dd-MM-yyyy").format(new Date());
Run Code Online (Sandbox Code Playgroud)


Ita*_*aro 60

// 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());
}
Run Code Online (Sandbox Code Playgroud)

取自这里

  • 我糊涂了.什么宇宙是`日历'比'日期'更可取? (5认同)
  • 它实际上仍然使用`Date`,因为`Calendar#getTime()`返回一个`Date` ... (4认同)

jas*_*p85 27

// On the form: dow mon dd hh:mm:ss zzz yyyy
new Date().toString();
Run Code Online (Sandbox Code Playgroud)

  • 很抱歉超出预期. (57认同)
  • 这将显示日期和时间,而不仅仅是当前日期. (2认同)
  • 该方法使用的格式很糟糕。另外,您的KVM的当前默认时区是隐式应用的,因此您的结果将有所不同。这些麻烦的类现在已被遗留,由java.time类取代。请参阅[Oracle教程](https://docs.oracle.com/javase/tutorial/datetime/TOC.html)。 (2认同)

Ada*_*ski 17

使用DateFormat实现; 例如SimpleDateFormat.

DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
String data = df.format(new Date());
Run Code Online (Sandbox Code Playgroud)


Bas*_*que 10

TL;博士

LocalDate.now()
         .toString() 
Run Code Online (Sandbox Code Playgroud)

2017年1月23日

最好明确指定所需/预期的时区.

LocalDate.now( ZoneId.of( "America/Montreal" ) )
         .toString() 
Run Code Online (Sandbox Code Playgroud)

java.time

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() ;
Run Code Online (Sandbox Code Playgroud)

2017年1月23日

默认情况下,您将获得标准ISO 8601格式的字符串.

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


关于java.time

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,和更多.


Joh*_*ley 9

快点 :

String date = FastDateFormat.getInstance("dd-MM-yyyy").format(System.currentTimeMillis( ));
Run Code Online (Sandbox Code Playgroud)

  • 需要org.apache.commons (4认同)