获取java格式的日期类型对象
正如我们所知,我们可以使用获取java格式的日期类型对象,java,date,Java,Date,正如我们所知,我们可以使用Java.util.date或Calendar实例或使用GregoriaCalendar实例来获取日期 使用类“SimpleDateFormat”我们可以parse()或format()函数我们的日期或字符串 正如我们所知,使用parse()或format()函数,我们仅以字符串的形式获得输出 java中是否有任何选项可用于获取特定格式(如'yyyy-MM-dd'或任何其他格式)的Date实例,但最终输出应为该格式的Date类型?否它在Date类的toString()方
Java.util.date
或Calendar
实例或使用GregoriaCalendar
实例来获取日期
使用类“SimpleDateFormat
”我们可以parse()
或format()
函数我们的日期
或字符串
正如我们所知,使用parse()
或format()
函数,我们仅以字符串的形式获得输出
java中是否有任何选项可用于获取特定格式(如'yyyy-MM-dd'或任何其他格式)的Date
实例,但最终输出应为该格式的Date
类型?否它在Date
类的toString()方法中固定,如果您严格希望此功能完全没有格式,则可以扩展日期。它只是自标准基准时间(即1970年1月1日00:00:00 GMT)以来的时间表示
只能使用所需格式获取日期的字符串表示形式
另外,SDF的parse()
方法将日期的字符串表示形式解析为日期对象format()
是提供日期对象的格式化字符串表示形式的方法。您可以扩展java.util.Date
类,并重写默认的toString()
方法。您可以实现该模式(或者该模式-我不确定是否真的有区别)。您的问题的简短答案是否定的。类日期和Gregoriacalendar
不包括格式-您必须单独使用格式,可以作为字符串
或简化格式
如果您确实希望能够传递一个既有日期又有格式的对象,那么您可以创建自己的类,该类将GregoriaCalendar
和SimpleDataFormat
作为字段。您可以给它一个toString
方法,该方法使用SimpleDataFormat
格式化GregoriaCalendar
您的评论表明您忽略了日期时间对象不是字符串这一点。在java.util.Date和中,日期时间表示为自。在Java8java.time.*中,日期时间可能是从纪元开始的纳秒。但这些都与字符串无关。我们创建字符串作为输出,作为毫秒/纳秒的转换,对人类有意义。避免遗留日期时间类
与最早版本的Java捆绑在一起的旧日期时间类设计拙劣、混乱且麻烦。避开它们。现在被java.time类取代
Instant
正如其他人所说,一个java.util.Date
代表UTC时间线上的一个时间点,分辨率为毫秒。java.util.Date
完全没有格式
您可以将Date
对象转换为java.time.Instant
。该类表示时间线上的一个时刻,分辨率为
ZoneDateTime
指定一个时区,在您的场景中获取日期是有意义的。时区对于确定日期至关重要;在任何特定的时刻,全球各地的日期都会因地区而异
ZoneId z = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = instant.atZone( z );
LocalDate
现在,如果您想使用不带时间和时区的仅日期值,请从ZonedDateTime
对象中提取LocalDate
对象
LocalDate ld = zdt.toLocalDate();
生成字符串
要以您请求的格式生成表示此LocalDate
值的字符串,只需调用toString
。YYYY-MM-DD格式是标准ISO 8601格式。在解析/生成字符串时,java.time类默认使用ISO 8601格式。不要将格式化字符串与日期时间对象混淆。日期时间对象没有格式,只有字符串有格式
String output = ld.toString();
如果需要其他格式,请在堆栈溢出中搜索类DateTimeFormatter
关于java.time
该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,如java.util.date
,.Calendar
,&java.text.SimpleDateFormat
该项目现已启动,建议迁移到java.time
要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释
大部分java.time功能都在中向后移植到java 6和7,并进一步适应于中(请参阅)
该项目使用其他类扩展了java.time。这个项目是java.time将来可能添加的一个试验场。您可以在这里找到一些有用的类,如Interval
、YearWeek
、YearQuarter
,等等。忘记“SimpleDataFormat”是否有任何选项可以获取任何格式的日期对象?因为我需要在外部API中传递特定格式的日期对象?@user3097955-我的答案的第一行应该回答您的疑问<代码>日期
没有自己的格式。
String output = ld.toString();