我想获得给定日期字符串的格式.
示例:我有一个字符串,2011-09-27T07:04:21.97-05:00并且此字符串的日期格式为yyyy-MM-dd'T'HH:mm:ss.SSS.
在这里,当我将string(2011-09-27T07:04:21.97-05:00)传递给将返回format(yyyy-MM-dd'T'HH:mm:ss.SSS)的方法时,我想找出这种日期格式,然后我将根据我的要求(like yy-mm--dd or mm/dd/yyyy)格式化我给定的日期字符串.
任何人都可以告诉我如何实现它?
小智 44
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class NewClass {
private static final String[] formats = {
"yyyy-MM-dd'T'HH:mm:ss'Z'", "yyyy-MM-dd'T'HH:mm:ssZ",
"yyyy-MM-dd'T'HH:mm:ss", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
"yyyy-MM-dd'T'HH:mm:ss.SSSZ", "yyyy-MM-dd HH:mm:ss",
"MM/dd/yyyy HH:mm:ss", "MM/dd/yyyy'T'HH:mm:ss.SSS'Z'",
"MM/dd/yyyy'T'HH:mm:ss.SSSZ", "MM/dd/yyyy'T'HH:mm:ss.SSS",
"MM/dd/yyyy'T'HH:mm:ssZ", "MM/dd/yyyy'T'HH:mm:ss",
"yyyy:MM:dd HH:mm:ss", "yyyyMMdd", };
/*
* @param args
*/
public static void main(String[] args) {
String yyyyMMdd = "20110917";
parse(yyyyMMdd);
}
public static void parse(String d) {
if (d != null) {
for (String parse : formats) {
SimpleDateFormat sdf = new SimpleDateFormat(parse);
try {
sdf.parse(d);
System.out.println("Printing the value of " + parse);
} catch (ParseException e) {
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
你可以这样做,我不知道好的方式,但试试这个
首先创建SimpleDateFormat对象
SimpleDateFormt sdf = new SimpleDateFormat("yyyy-MM-dd 'T' HH:mm:ss.SSS");
Run Code Online (Sandbox Code Playgroud)
现在,当检查日期是否会以此格式解析时,请根据您的格式进行更改
try{
Date date = sdf.parse(yourdate);
sdf.applyPattern("yy-mm--dd or mm/dd/yyyy");
String dateformat = sdf.format(date);
}catch(Exception ex) { // here forgot the exact exception class Parse exception was used
// do something here
}
Run Code Online (Sandbox Code Playgroud)
更新的帖子:
| 归档时间: |
|
| 查看次数: |
73634 次 |
| 最近记录: |