2015-07-20 165 views
-1

的具体格式我有这些字符串如何解析日期字符串

String day1 = "June 3, 2015"; 

String day2 = "June 25, 2015"; 

我想创建一个方法来解析出的月,日和年。目前我正在使用substring(),但认为可能有更好的解决方案?

+1

'SimpleDateFormat'吧? –

+0

http://stackoverflow.com/questions/16208121/java-create-date-object-using-a-value-string –

+0

可能的重复[如何解析/格式与LocalDateTime日期? (Java 8)](http://stackoverflow.com/questions/22463062/how-to-parse-format-dates-with-localdatetime-java-8) – RealSkeptic

回答

-1

解决方案1:

使用的StringTokenizer来标记串例如:从日期

String str = "June 3, 2015"; 
StringTokenizer defaultTokenizer = new StringTokenizer(str); 
while (defaultTokenizer.hasMoreTokens()) 
{ 
    System.out.println(defaultTokenizer.nextToken()); 
} 

删除 '' 即使用deletecharAt(INT指数)第二令牌;

希望为你

方案2的工作原理: 使用split()方法

for (String retval: Str.split(" ", 3)){ 
     System.out.println(retval); 
} 

split() takes two argument first it will take the token , and the limit is how many strings. still you have to remove ',' . 

还有一个最简单的办法: 解决方案3:

SimpleDateFormat format = new SimpleDateFormat("MMMM d, yyyy"); 
Date date1 = format.parse(day1); 
Date date2 = format.parse(day2); 
+0

[JavaDoc](http://docs.oracle.com) com/javase/7/docs/api/java/util/StringTokenizer.html)说:*'StringTokenizer'是一个遗留类,为了兼容性的原因被保留,尽管它在新代码中的使用不受欢迎。建议任何寻求这种功能的人都使用'String'或'java.util.regex'包中的'split'方法。* – RealSkeptic

0

注意这相当于到MMMM dd, yyyy

试试这个。

SimpleDateFormat sdf = SimpleDateFormat("MMMM dd, yyyy"); 
Date parsed = sdf.parse(day1, new ParsePosition(0)); 
... 

ps:我没有试过这个代码,请随时评论任何东西。

参考SimpleDateFormat

1

使用SimpleDateFormat,并从那里解析日期。

SimpleDateFormat format = new SimpleDateFormat("MMMM d, yyyy"); 
Date date1 = format.parse(day1); 
Date date2 = format.parse(day2); 
+0

ROLF,这与我刚才的方法相同:D –

-1

你可以尝试像

private static final String DAY = "dd"; 
private static final String MONTH = "MM"; 
private static final String YEAR = "yyyy";//use the format you want this just an example 
Format month = new SimpleDateFormat(MONTH); 
Format day = new SimpleDateFormat(DAY); 
Format year = new SimpleDateFormat(YEAR); 
month.format(your date); 
day.format(your date); 
year.format(your date);