今天上班遇到這么一個(gè)意料之外的異常:
永昌ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
出問題的代碼是這樣的(已去除上下文信息):
Log.i(LOG_TAG, new SimpleDateFormat("YYYY-MM-dd HH:mm:ss", Locale.CHINA) .format(System.currentTimeMillis()));
反復(fù)檢查,感覺沒有問題,于是新建一個(gè)Java Project,直接輸出同樣的代碼:
public class Main{ public static void main(String[] args){ System.out.println(new SimpleDateFormat("YYYY-MM-dd HH:mm:ss", Locale.CHINA) .format(System.currentTimeMillis())); } }
得到的結(jié)果是這樣的:
感覺蹊蹺,遂查閱Android API,在Java.text.SimpleDateFormat的描述表中,與Java SE 不同,對(duì)“年”的描述中,僅有"y",沒有"Y"。當(dāng)把代碼中的"Y"替換為小寫后,問題就解決了。
這便是API的不同的坑。以前也遇到過一些,但今天這個(gè)有些意外,以前沒有注意過??偨Y(jié):以后如果使用Java標(biāo)準(zhǔn)代碼出現(xiàn)奇怪的問題,最好先查看Android API,以確保自己的調(diào)用方式是否正確和有效。