如何在java中将当前日期转换为字符串?
如何在Java中将当前日期转换为字符串?使用实现;e、 g如何在java中将当前日期转换为字符串?,java,string,date,formatting,Java,String,Date,Formatting,如何在Java中将当前日期转换为字符串?使用实现;e、 g // On the form: dow mon dd hh:mm:ss zzz yyyy new Date().toString(); 取自更快: String date = FastDateFormat.getInstance("dd-MM-yyyy").format(System.currentTimeMillis( )); tl;博士 2017-01-23 最好明确指定所需/预期的时区 LocalDate.now( ZoneI
// On the form: dow mon dd hh:mm:ss zzz yyyy
new Date().toString();
取自更快:
String date = FastDateFormat.getInstance("dd-MM-yyyy").format(System.currentTimeMillis( ));
tl;博士
2017-01-23
最好明确指定所需/预期的时区
LocalDate.now( ZoneId.of( "America/Montreal" ) )
.toString()
java.time
Java8及更高版本的现代方法是使用框架
指定时区,因为世界各地的日期在任何给定时刻都不同
ZoneId zoneId = ZoneId.of( "America/Montreal" ) ; // Or ZoneOffset.UTC or ZoneId.systemDefault()
LocalDate today = LocalDate.now( zoneId ) ;
String output = today.toString() ;
2017-01-23
默认情况下,您将获得标准格式的字符串
对于其他格式,请使用java.time.format.DateTimeFormatter
类
关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,& 该项目现已启动,建议迁移到类 要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是 您可以直接与数据库交换java.time对象。使用兼容的或更高版本。不需要字符串,也不需要
java.sql.*
类
从哪里获得java.time类
- 然后
- 内置的李>
- 标准JavaAPI的一部分,带有捆绑实现
- Java9添加了一些次要功能和修复
- 及
- 大部分java.time功能都在中向后移植到Java6和Java7
-
- 更高版本的Android捆绑包实现了java.time类
- 对于早期的Android(大多数答案都是有效的。
针对日期处理的新JavaAPI修改确保减少了JAVA日期处理中的一些早期模糊性
对于类似的呼叫,您将收到一条不推荐使用的消息
上面的调用让开发人员假设一个新的Date对象将为Date对象提供当前的时间戳。这种行为在其他Java API类中是不一致的 执行此操作的新方法是使用日历实例new Date() // deprecated
这里的命名惯例也不完美,但这是非常有组织的。 对于像我这样的人来说,很难把事情弄得乱七八糟,但如果听起来/看起来合乎逻辑,他永远不会忘记,这是一个很好的方法 这是现实生活的同义词new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()
- 我们得到一个日历对象,并在其中查找时间。 (你一定想知道,没有人能从日历中获得时间,这就是为什么我说日历并不完美。但这是另一个话题 (总共)
- 然后我们希望日期采用简单的文本格式,因此我们使用SimpleDataFormat实用程序类,它可以帮助我们格式化步骤1中的日期。我使用yyyy、MM、dd作为格式中的参数 另一种方法是使用Joda时间API
或者更明显的new DateTime().toString("yyyy-MM-dd")
new DateTime(Calendar.getInstance().getTime()).toString("yyyy-MM-dd")
两者都将返回相同的结果。时间为YYYY-MM-ddpublic 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; } }
DateTime的库是:String time = new DateTime( yourData ).toString("yyyy-MM-dd");
import org.joda.time.DateTime;很抱歉实现过度。该方法使用的格式非常糟糕。此外,您的KVM当前默认时区被隐式应用,因此结果会有所不同。这些麻烦的类现在是遗留类,被java.time类取代。请参阅。使用日历而不是日期的最佳响应。我反对融合。在什么样的宇宙中,
比Calendar
更可取?仅供参考,这些麻烦的类现在是遗留的,被java.time类所取代。请参见.Requires org.apache.commons将其与下面的timestring.C的答案结合使用:@Ian Purton是UTC tz中的字符串日期。仅供参考,这些麻烦的类现在是遗留类,被java.time类取代。请参见.FYI,诸如,Date
、和java.util.Calendar
等麻烦的旧日期时间类现在被这些类取代。此外,项目现在已经开始,团队建议迁移到java.time。@BasilBourque这就是我在answ中的意思呃,得票最多的答案是正确的,但与当今的开发人员无关。最后,java将有一个时钟类和Clock.getTime()与Date或DateTime或Time类相比,模仿会更加明智和真实。Java开发人员需要知道,OOPS最初是模仿真实场景的。仅供参考,Java 8中的java.text.SimpleTextFormat
时钟
实现与遗留类完全相同。只有Java 9中出现了新的实现,能够捕获是的,这就是我写“finally”的原因,Java将有一个时钟类,它将模拟现实生活场景(OOPS概念)和显示/捕获(你更喜欢这样说)当前时刻。对这段代码的一些解释可能会有帮助。答案与问题无关。不,你不能以任何
字符串
格式将日期传递给函数。而
来自哪个库?关于堆栈溢出的回答应该有一些解释,因为本网站就是这样做的不仅仅是一个snippet library.FYI,这些麻烦的类现在是遗留类,被java.time类取代。请参阅。DateTime
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; } }
String time = new DateTime( yourData ).toString("yyyy-MM-dd");