如何将当前date转换为Java中的string?

如何将当前date转换为Java中的string?

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()); 

更快 :

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

TL;博士

 LocalDate.now() .toString() 

2017年1月23日

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

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

java.time

Java 8及更高版本的现代化方法是使用java.time框架。

指定时区,因为date在任何特定时刻都会变化。

 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格式的string。

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

关于java.time

java.time框架内置于Java 8及更高版本中。 这些类取代了麻烦的旧date时间类,如java.util.Date.Calendarjava.text.SimpleDateFormat

Joda-Time项目现在处于维护模式 ,build议迁移到java.time。

要了解更多信息,请参阅Oracle教程 。 并search堆栈溢出了很多例子和解释。

大部分的java.timefunction在ThreeTen-Backport中移植到Java 6&7中,并进一步适用于ThreeTenABP中的 Android (请参阅如何使用… )。

ThreeTen-Extra项目将java.time扩展到其他类。 这个项目是未来可能增加java.time的一个试验场。 你可能会在这里find一些有用的类,比如IntervalYearWeekYearQuarter等等。

时间为YYYY-MM-dd

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

而DateTime的库是:

import org.joda.time.DateTime;

大部分答案都是有效的。 date处理的新的JAVA API修改确保了在javadate处理中的一些较早的含糊不清。

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

 new Date() // deprecated 

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

这样做的新方法是使用日历实例。

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

这里的命名规则也不完美,但这是非常有组织的。 对于一个像我这样的人来说,如果听起来似乎是合乎逻辑的话,他们会很难把事情弄糊涂,但永远不会忘记,这是一个很好的方法。

这更像现实生活的代名词

  1. 我们得到一个日历对象,我们看看它的时间。 (你一定想知道没有任何机构能够从日历中获得时间,这就是为什么我说这不是完美的。但是这是一个完全不同的话题)
  2. 然后我们需要一个简单的文本格式的date,所以我们使用一个SimpleDateFormat工具类,它可以帮助我们从步骤1的date格式。我已经使用yyyy,MM,dd作为格式的参数。 支持的date格式参数

另一种方法是使用Joda时间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; } }