当前位置: 首页 > 知识库问答 >
问题:

SimpleDateFormat类中可用的日期格式是什么?

淳于祺
2023-03-14

有人能告诉我SimpleDateFormat类中可用的日期格式吗。

我看过api,但没有找到满意的答案。非常感谢您的帮助。

共有3个答案

童花蜂
2023-03-14

使现代化

其他问题已经过时了。可怕的遗留类,如SimpleDataFormat,多年前被现代java取代。时间课。

为了定义您自己的自定义格式模式,DateTimeForall中的代码与SimpleDateFormat中的代码相似,但不完全相同。一定要研究留档。并搜索Stack Overflow以获取许多示例。

DateTimeFormatter f = 
    DateTimeFormatter.ofPattern( 
        "dd MMM uuuu" , 
        Locale.ITALY 
    ) 
;

ISO 8601标准定义了许多类型的日期时间值的格式。这些格式是为数据交换而设计的,很容易被机器解析,也很容易被跨文化的人类读取。

爪哇。时间类在生成/解析字符串时默认使用ISO 8601格式。只需调用toString

Instant.now().toString()

2018-11-05T18:19:33.017554Z

对于UTC值,末尾的Z表示UTC,发音为“Zulu”。

不必指定格式化模式,您可以使用java。时间会自动为你定位。使用DateTimeFormatter。本地的…方法。

使用特定区域(时区)的人使用的挂钟时间获取当前时刻。

ZoneId z = ZoneId.of( "Africa/Tunis" );
ZonedDateTime zdt = ZonedDateTime.now( z );

生成标准ISO 8601格式的文本,并明智地扩展到将时区名称附加在方括号中。

zdt。toString():2018-11-05T19:20:23.765293 01:00[非洲/突尼斯]

生成自动本地化文本。

Locale locale = Locale.CANADA_FRENCH;
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.FULL ).withLocale( locale );

String output = zdt.format( f );

输出: Lundi 5十一月2018在19:20:23关于欧洲中部

一般来说,自动本地化是一个更好的做法,而不是用硬编码的格式化模式来烦恼。

爪哇。时间框架内置于Java8及更高版本中。这些类取代了麻烦的旧遗留日期时间类,比如java。util。日期日历

要了解更多信息,请参阅Oracle教程。并搜索堆栈溢出以获得许多示例和解释。规格是JSR 310。

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

您可以直接与数据库交换java.time对象。使用符合JDBC 4.2或更高版本的JDBC驱动程序。不需要字符串,不需要java.sql.*类。冬眠5

在哪里获得java.time类?

  • JavaSE 8,JavaSE 9,JavaSE 10,JavaSE 11,以及更高版本-标准JavaAPI的一部分,具有捆绑实现。
    • Java9带来了一些小功能和修复。
    • 大部分的java应用程序。时间功能被重新移植到Java 6
    • java.time类的Android(26)捆绑实现的后续版本。
    • 对于早期的Android(

黄无尘
2023-03-14

让我抛出一些我从http://www3.ntu.edu.sg/home/ehchua/programming/java/DateTimeCalendar.html得到的示例代码,然后您可以使用不同的选项,直到您理解它。

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateTest {
   public static void main(String[] args) {
       Date now = new Date();

       //This is just Date's toString method and doesn't involve SimpleDateFormat
       System.out.println("toString(): " + now);  // dow mon dd hh:mm:ss zzz yyyy
       //Shows  "Mon Oct 08 08:17:06 EDT 2012"

       SimpleDateFormat dateFormatter = new SimpleDateFormat("E, y-M-d 'at' h:m:s a z");
       System.out.println("Format 1:   " + dateFormatter.format(now));
       // Shows  "Mon, 2012-10-8 at 8:17:6 AM EDT"

       dateFormatter = new SimpleDateFormat("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
       System.out.println("Format 2:   " + dateFormatter.format(now));
       // Shows  "Mon 2012.10.08 at 08:17:06 AM EDT"

       dateFormatter = new SimpleDateFormat("EEEE, MMMM d, yyyy");
       System.out.println("Format 3:   " + dateFormatter.format(now));
       // Shows  "Monday, October 8, 2012"

       // SimpleDateFormat can be used to control the date/time display format:
       //   E (day of week): 3E or fewer (in text xxx), >3E (in full text)
       //   M (month): M (in number), MM (in number with leading zero)
       //              3M: (in text xxx), >3M: (in full text full)
       //   h (hour): h, hh (with leading zero)
       //   m (minute)
       //   s (second)
       //   a (AM/PM)
       //   H (hour in 0 to 23)
       //   z (time zone)
       //  (there may be more listed under the API - I didn't check)

   }

}

祝你好运

何博涛
2023-03-14

日期和时间格式如下所述

SimpleDateFormat(Java平台SE 7)-日期和时间模式

你可以制作多种格式。ex-dd/MM/yyyyyyyy-'W'ww-u或者您可以混合和匹配字母以达到所需的模式。图案字母如下。

  • G-纪元指示符(AD)
  • y-年份(1996;96)
  • Y-周年(2009;09)
  • M-一年中的月份(7月;7月;7月)
  • w-一年中的一周(27)
  • W-月中的一周(2)
  • D-一年中的一天(189)
  • d-月日(10)
  • F-第二个月的星期几
  • E-一周中的日期名称(星期二;星期二)
  • u-一周的天数(1=周一,…,7=周日)
  • a-AM/PM标记
  • H一天中的小时数(0-23)
  • k-一天中的一小时(1-24)
  • K-上午/下午(0-11)的小时数
  • h-上午/下午(1-12)的小时数
  • m-以小时为单位的分钟数(30)
  • s-分每秒(55)
  • S-毫秒(978)
  • z-一般时区(太平洋标准时间;太平洋标准时间;GMT-08:00)
  • Z-RFC 822时区(-0800)
  • X-ISO 8601时区(-08;-0800;-08:00)

要分析:

2000-01-23T04:56:07.000 0000

使用:new SimpleDateFormat(“yyyy-MM-dd'HH:MM:ss.SSSZ”)

 类似资料:
  • 有人能告诉我SimpleDateFormat类中可用的日期格式吗。 我看过api,但没有找到满意的答案。非常感谢您的帮助。

  • 本文向大家介绍使用SimpleDateFormat格式化日期,包括了使用SimpleDateFormat格式化日期的使用技巧和注意事项,需要的朋友参考一下 SimpleDateFormat是一个具体的类,用于以对语言环境敏感的方式来格式化和解析日期。SimpleDateFormat允许您从选择任何用户定义的日期时间格式模式开始。 示例 这将产生以下结果- 输出结果 简单的DateFormat格式代

  • 本文向大家介绍java日期格式化SimpleDateFormat的使用详解,包括了java日期格式化SimpleDateFormat的使用详解的使用技巧和注意事项,需要的朋友参考一下 日期和时间格式由 日期和时间模式字符串 指定。在 日期和时间模式字符串 中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (') 引起

  • 我无法设置日期格式。接受作为参数。所以我创建了一个新的 它说below Date()方法不推荐使用,并且我在运行时得到below异常。 例外情况: 我的数据库的日期格式为-2012-02-16T00:00:00.000-0500我需要将它转换为格式为:dd-MMM-yyyy HH:MM:SS的字符串 我正在使用Java6

  • 我见过很多不同的JSON日期格式标准: 哪一个是正确的?还是最好?这方面有什么标准吗?

  • 问题内容: 当它们转换为字符串时,我需要将Java Date对象转换为与JavaScript日期具有相同格式的字符串。在我们的服务器上,我们有JavaScript日期‘d,格式为: 我有一个Java Date对象,我试图将其转换为相同格式的字符串。到目前为止,我的模式是 (小时,分钟和秒始终为0),但我无法确定时区()的正确模式 谢谢您的帮助!这是到目前为止我正在使用的Java代码,以防万一: 编