如何将当前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
, .Calendar
和java.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一些有用的类,比如Interval
, YearWeek
, YearQuarter
等等。
时间为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()
这里的命名规则也不完美,但这是非常有组织的。 对于一个像我这样的人来说,如果听起来似乎是合乎逻辑的话,他们会很难把事情弄糊涂,但永远不会忘记,这是一个很好的方法。
这更像现实生活的代名词
- 我们得到一个日历对象,我们看看它的时间。 (你一定想知道没有任何机构能够从日历中获得时间,这就是为什么我说这不是完美的。但是这是一个完全不同的话题)
- 然后我们需要一个简单的文本格式的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; } }