SimpleDateFormat sf = new SimpleDateFormat("yyyy-mm-dd'T'HH:mm:ss");
String str = "2010-06-13T00:00:00";
Date date = sf.parse(str);
System.out.println(" Date " + date.toString());
#1 楼
请尝试:"yyyy-MM-dd'T'HH:mm:ss"
MM
表示月份。 mm
表示分钟。有关受支持的日期和时间模式的更多详细信息,请参见SimpleDateFormat
的文档。评论
欢迎来到@manu!听起来您认为这是正确的答案。您可以通过单击该评论上方和左侧的对勾标记将其标记为可接受的答案。这可以帮助其他人看到问题已得到回答,使答题者的答辩率+15,而您的答辩率+2!
– Pops
2010年6月16日在20:17
仅供参考,现在麻烦的旧日期时间类非常麻烦,例如java.util.Date,java.util.Calendar和java.text.SimpleDateFormat,已被内置在Java 8及更高版本中的java.time类取代。请参见Oracle教程。请参阅Ole V.V的回答。使用LocalDate。
–罗勒·布尔克
18-09-16在6:53
#2 楼
问题是您使用“ mm”作为月份,而“ mm”表示分钟。以下是所有日期格式,请在此处阅读更多文档。
Symbol Meaning Kind Example
D day in year Number 189
E day of week Text E/EE/EEE:Tue, EEEE:Tuesday, EEEEE:T
F day of week in month Number 2 (2nd Wed in July)
G era designator Text AD
H hour in day (0-23) Number 0
K hour in am/pm (0-11) Number 0
L stand-alone month Text L:1 LL:01 LLL:Jan LLLL:January LLLLL:J
M month in year Text M:1 MM:01 MMM:Jan MMMM:January MMMMM:J
S fractional seconds Number 978
W week in month Number 2
Z time zone (RFC 822) Time Zone Z/ZZ/ZZZ:-0800 ZZZZ:GMT-08:00 ZZZZZ:-08:00
a am/pm marker Text PM
c stand-alone day of week Text c/cc/ccc:Tue, cccc:Tuesday, ccccc:T
d day in month Number 10
h hour in am/pm (1-12) Number 12
k hour in day (1-24) Number 24
m minute in hour Number 30
s second in minute Number 55
w week in year Number 27
G era designator Text AD
y year Number yy:10 y/yyy/yyyy:2010
z time zone Time Zone z/zz/zzz:PST zzzz:Pacific Standard
#3 楼
现代答案: String str = "2010-06-13T00:00:00";
LocalDateTime dateTime = LocalDateTime.parse(str);
System.out.println("Date-time " + dateTime);
输出:
日期时间2010-06-13T00:00
我正在使用并推荐现代Java日期和时间API
java.time
。我们甚至不需要显式的格式化程序即可进行解析。这是因为您的字符串采用ISO 8601格式,这是java.time
类将其解析为默认值的国际标准。 java.time
于2014年问世。2010年问这个问题时,
SimpleDateFormat
是我们用于解析日期和时间的东西,幸运的是,该类现在被认为已经过时,因为它也很麻烦。 如果您的字符串仅包含日期而没有一天中的时间,请以完全相同的方式使用
LocalDate
类(在重复的问题中被问到)。 String dateStr = "2018-05-23";
LocalDate date2 = LocalDate.parse(dateStr);
System.out.println(date2);
2018-05-23
链接:Oracle教程:Date Time说明如何使用
java.time
。#4 楼
例如,如果日期为06 07 2016SimpleDateFormat sdf= new SimpleDateFormat("dd MM yyyy");
,则可以在这些格式之间使用逗号,句号,斜杠或连字符。
Ex: dd-mm-yyyy, it will display like(06-07-2016)
dd/mm/yyyy,it will display like(06/07/2016)
dd.mm.yyyy,it will display like(06.07.2016)
dd,mm,yyyy ,it will display like(06,07,2016)
MM - will display number of the Month.
MMM - will display Month Three character only(Ex: Jul)
MMMM - will display full month(Ex: July)
yyyy - will display full year(2016)
yy - will display last two digits(16)
hh - will display hours
mm -will display minutes
ss - will display seconds
a - will display AM or PM
Ex: if time is 12:09:10 PM means (hh:mm:ss a)
EEE- will display short week name(Ex: Wed)
EEEE- will display full week name(Ex: Wednesday)
评论
请注意,您有两次“ mm”,一次为一个月,一次为一分钟。仅供参考,现在麻烦的旧日期时间类非常麻烦,例如java.util.Date,java.util.Calendar和java.text.SimpleDateFormat,已被内置在Java 8及更高版本中的java.time类取代。请参见Oracle教程。请参阅Ole V.V的回答。使用LocalDate。