解析yyyy-MM-dd' HH:mm:ss在Android中的日期

时间:2017-05-11 18:45:05

标签: java android date

我的字符串日期 - > 2016-10-02T00:00:00.000Z。我想从这个字符串中只获取日期。我试图解析下面的编码,但它让我错误!我的格式与字符串中提到的格式完全相同。有什么答案吗?

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSSZ");
        try {
            Date myDate = sdf.parse( dateofJoining.replaceAll( "([0-9\\-T]+:[0-9]{2}:[0-9.+]+):([0-9]{2})", "$1$2" ) );
            System.out.println("Date only"+ myDate );
        } catch (ParseException e) {
            e.printStackTrace();
        }

我也在代码下面累了,

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");  
try {  
    Date date = format.parse(dtStart);  
    System.out.println(date);  
} catch (ParseException e) {  
    // TODO Auto-generated catch block  
    e.printStackTrace();  
}

我得到的错误

java.text.ParseException: Unparseable date: "2016-10-02T00:00:00.000Z" (at offset 19)
05-12 00:18:36.613 4330-4330/com.vroom.riderb2b W/System.err:     at java.text.DateFormat.parse

4 个答案:

答案 0 :(得分:1)

以下是所有可用的日期格式,请在此处阅读更多doc

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 

希望它有所帮助。

答案 1 :(得分:0)

尝试

Calendar calendar = Calendar.getInstance();
TimeZone localTZ = calendar.getTimeZone();    
String format1 = "yyyy-MM-dd"; //will return 2017-01-31
String format2 = "dd"; //will return DAY only like 31
SimpleDateFormat sdf = new SimpleDateFormat(format);
sdf.setTimeZone(localTZ );
String result = sdf.format(your_date);

答案 2 :(得分:0)

对我来说它是这样工作的:

textView_last_comm.setText(parseDateFormat(passDetailsModel.getLast_comm(), "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", "dd/MM/yy HH:mm"));

  public static String parseDateFormat(String dateToFormat, String inputFormat, String outputFormat) {
SimpleDateFormat inputFormat = new SimpleDateFormat(inputFormat);
SimpleDateFormat outputFormat = new SimpleDateFormat(outputFormat);

Date date = null;
String str = null;

try {
    date = inputFormat.parse(dateToFormat);
    str = outputFormat.format(date);
} catch (ParseException e) {
    e.printStackTrace();
}
return str;
}

答案 3 :(得分:-1)

您可以使用date方法轻松获得String.substring()

String string = "2016-10-02T00:00:00.000Z";
String date = string.substring(0, 10);

Log.d("SUCCESS", "DATE: " + date);

<强>输出:

D/SUCCESS: DATE: 2016-10-02