Java 这种日期格式的模式是什么?

Java 这种日期格式的模式是什么?,java,simpledateformat,Java,Simpledateformat,如果不先知道simpleDataFormat模式,就无法解析时间戳,我不确定这是什么: 1980/01/30 10:36:42-0400 我想它会像是yyyy/MM/dd HH:MM:ss,但我不确定-0400部分,或者我是否应该大写MM,HHMM是月,MM是分钟 HH是24小时时间,0-23HH是12小时时间 Z是时区,是您要查找的最后一个字段 在中,有一个可爱的表格列出了所有的模式字母。MM是月,MM是分钟 HH是24小时时间,0-23HH是12小时时间 Z是时区,是您要查找的最后一个字段

如果不先知道
simpleDataFormat
模式,就无法解析时间戳,我不确定这是什么:

1980/01/30 10:36:42-0400


我想它会像是
yyyy/MM/dd HH:MM:ss
,但我不确定
-0400
部分,或者我是否应该大写
MM
HH
MM
是月,
MM
是分钟

HH
是24小时时间,0-23
HH
是12小时时间

Z
是时区,是您要查找的最后一个字段


在中,有一个可爱的表格列出了所有的模式字母。

MM
是月,
MM
是分钟

HH
是24小时时间,0-23
HH
是12小时时间

Z
是时区,是您要查找的最后一个字段

在中,有一个可爱的表格列出了所有的图案字母。

在这里有文档记录。你可以用这样的东西来解析日期

public static void main(String[] args)
    throws ParseException {
  String date = "1980/01/30 10:36:42 -0400";
  String pattern = "yyyy/MM/dd HH:mm:ss Z";
  SimpleDateFormat sdf = new SimpleDateFormat(pattern);
  System.out.println(sdf.parse(date));
}
输出为(因为我的系统在EST中)-

这里有文档记录。你可以用这样的东西来解析日期

public static void main(String[] args)
    throws ParseException {
  String date = "1980/01/30 10:36:42 -0400";
  String pattern = "yyyy/MM/dd HH:mm:ss Z";
  SimpleDateFormat sdf = new SimpleDateFormat(pattern);
  System.out.println(sdf.parse(date));
}
输出为(因为我的系统在EST中)-


您可以将此格式用于日期格式

 SimpleDateFormat   date = new SimpleDateFormat("yyyy/MM/dd:HH:mm:SS Z");
 System.out.println(date);
输出

2012/1/16:16:11:31 -0400

您可以将此格式用于日期格式

 SimpleDateFormat   date = new SimpleDateFormat("yyyy/MM/dd:HH:mm:SS Z");
 System.out.println(date);
输出

2012/1/16:16:11:31 -0400

来自javadoc:以下示例显示了在美国地区如何解释日期和时间模式。给定的日期和时间是美国太平洋时区的当地时间2001-07-04 12:08:56

     Date and Time Pattern                 Result

"yyyy.MM.dd G 'at' HH:mm:ss z"  2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ''yy"                  Wed, Jul 4, '01
"h:mm a"                            12:08 PM
"hh 'o''clock' a, zzzz"         12 o'clock PM, Pacific Daylight Time
"K:mm a, z"                     0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa"  02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z"    Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ"                 010704120856-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"    2001-07-04T12:08:56.235-0700

RFC 822时区:
对于格式,RFC 822 4位时区格式由
z
表示,来自javadoc:以下示例显示了在美国地区如何解释日期和时间模式。给定的日期和时间是美国太平洋时区的当地时间2001-07-04 12:08:56

     Date and Time Pattern                 Result

"yyyy.MM.dd G 'at' HH:mm:ss z"  2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ''yy"                  Wed, Jul 4, '01
"h:mm a"                            12:08 PM
"hh 'o''clock' a, zzzz"         12 o'clock PM, Pacific Daylight Time
"K:mm a, z"                     0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa"  02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z"    Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ"                 010704120856-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"    2001-07-04T12:08:56.235-0700

RFC 822时区:
对于格式,RFC 822 4位时区格式由
z

表示,如果您的最后5个字符始终是同一时区,则使用子字符串(或等效字符串)
-0400
将是时区,
GMT-4
。月份应该大写,但是如果没有更多的信息,很难知道如何处理小时,但是在没有am/pm标记的情况下,如果您的最后5个字符总是在同一时区,则可以合理地猜测它是24小时表示,然后使用子字符串(或等效字符)将其切掉
-0400
将是时区,
GMT-4
。月份应该大写,但是如果没有更多的信息,很难知道如何处理小时,但是在没有am/pm标记的情况下,可以合理地猜测它是24小时表示