在VB.Net中,与Now.ToString(“yyyy-MM-dd”)等价的较短Java代码是什么?
我正在将一个VB.Net程序转换为Java,我必须转换以下代码行在VB.Net中,与Now.ToString(“yyyy-MM-dd”)等价的较短Java代码是什么?,java,vb.net,date,migration,date-formatting,Java,Vb.net,Date,Migration,Date Formatting,我正在将一个VB.Net程序转换为Java,我必须转换以下代码行 Dim s = Now.ToString("yyyy-MM-dd") 我已经编写了以下Java代码 Date d = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String s = sdf.format(d); 我可以写在一行上 String s = new SimpleDateFormat("yyyy-MM-dd").form
Dim s = Now.ToString("yyyy-MM-dd")
我已经编写了以下Java代码
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String s = sdf.format(d);
我可以写在一行上
String s = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
在Java 6和更高版本中工作的较短的代码是什么
是否有一些Java代码在调用日期对象的方法时生成日期格式的字符串(例如:
date.format(“yyyy-MM-dd”)
?从Java 8开始,有Java.time
和几个有用的类
如果您可以使用Java 8或更高版本,则可以执行以下操作:
String now = LocalDate.now().format(DateTimeFormatter.ISO_LOCAL_DATE);
今天在我的时区(可能与您的时区不同)将输出2018-12-05
你只需要
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
为了让它工作。
您还可以使用应用自定义格式
DateTimeFormatter customFormatter = new DateTimeFormatter.ofPattern("yyyy-MM-dd");
String now = LocalDate.now().format(customFormatter);
在Java 6和更高版本中工作的较短的Java代码是什么?
我想回答“Java6及更高版本”部分:deHaar答案中的代码确实如此。我的版本是
String now = LocalDate.now(ZoneId.systemDefault()).toString();
或
- 在Java8和更高版本以及更新的Android设备(API级别26)中,内置了现代API Java.time
- 在Java6和Java7中,获取三个后端口,即新类的后端口(三个用于JSR310;请参阅底部的链接)
- 在(较旧的)Android上使用Android版本的ThreeTen Backport。它叫ThreeTenABP。并确保从带有子包的
导入日期和时间类org.threeten.bp
- 解释如何使用
java.time
- ,其中首先描述了
java.time
- ,java.time的后端口到Java6和Java7(JSR-310为三十)
- ,Android版Three Ten Backport
- ,解释得非常透彻
SimpleDateFormat
类。它不仅早已过时,而且还出了名的麻烦。今天,我们有了更好的代码。不要追求短代码。相反,要争取清晰易读的代码。有时它们恰好相同,有时较短的代码可读性较差。String s=Now.ToString(“yyyy-MM-dd”)
,这不是vb…是的,它不是vb。我会更正的。对于第一个代码片段,您也可以只使用LocalDate.now().toString()
。我建议为now
指定明确的时区,即使您只是执行LocalDate.now(ZoneId.systemDefault())
。它更清楚地说明了你期望得到什么。我想投赞成票,但我没有足够的声誉!谢谢你的回答。你可以接受它作为正确的答案。。。如果你不能投赞成票,那没问题,我记得几个月前就遇到过这种情况;-)我已经接受了它,但它被拒绝,直到我有15个声誉!对不起,没问题,您可以投票和/或接受@OleV.V给出的答案。等你有足够的声誉时再告诉我。我想投赞成票,但我没有足够的声誉!感谢您对任何Java版本的回答。
DateTimeFormatter customFormatter = new DateTimeFormatter.ofPattern("uuuu-MM-dd");
String now = LocalDate.now(ZoneId.systemDefault()).format(customFormatter);