SimpleDateFormat 日期,时间格式转化
SimpleDateFormat? 一定要弄清楚 parse 與 format 不然總是遇到異常 就是使用不對的問題
parse()返回的是一個Date類型里面使用的String類型
format 返回的是一個String類型 里面使用的是Date類型
?
假如獲取了系統時間
Date date = new Date();
這個date 定義的Date 類型的數據
可以使用format 剛才返回一個string類型的日期
如下
Date date = new Date();Log.e("-----date", String.valueOf(date));SimpleDateFormat s = new SimpleDateFormat("yyyy年MM月dd日");Log.e("----s", s.format(date));
格式自己根據需要設置就行
?
假如現在直接定義一個String的時間? String time = "2019-8-8"; 想要的結果是時間后面帶年月日以及星期
說下思路這個time 是String 類型的 肯定使用parse 解析 返回一個Date 類型 ,然后在使用format 轉成指定的格式
假如直接使用如下的代碼肯定走到error里面了
String time = "2019-8-8";SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM日dd EE");Date tt = null;try {tt = sdf.parse(time);Log.e("-----hxm", String.valueOf(tt));} catch (ParseException e) {e.printStackTrace();Log.e("----error", e.getMessage());}
這種就是錯誤的寫法 ,原因是格式不一樣呢
正確的寫法如下
String time = "2019-8-8";SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Date tt = null;try {tt = sdf.parse(time);Log.e("-----hxm", String.valueOf(tt));} catch (ParseException e) {e.printStackTrace();Log.e("----error", e.getMessage());}SimpleDateFormat sd = new SimpleDateFormat("yyyy年MM日dd EE");String dd = sd.format(tt);Log.e("---dd", dd);
所以呢個人總結使用SimpleDateFormat 的使用一定要請求自己解析的是什么類型 然后在判斷用parse 還是format
如果是Date 類型的直接format 轉化即可,如果是String 類型 先使用parse 轉成 Date 類型 這時候一定一定一定要注意格式
就是顯示時間個格式與SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); (這里的格式就是時間為2019/8/8對應的為yyyy/MM/dd 時間為2019-8-8對應的格式為yyyy-MM-dd) 后面的這個格式要一樣。
然后在使用format 轉化成一個指定類型的String 類型數據。。。。
?
SimpleDateFormat函數語法:
G 年代標志符
y 年
M 月
d 日
h 時 在上午或下午 (1~12)
H 時 在一天中 (0~23)
m 分 s 秒 S 毫秒
E 星期
D 一年中的第幾天
F 一月中第幾個星期幾
w 一年中第幾個星期
W 一月中第幾個星期
a 上午 / 下午 標記符
k 時 在一天中 (1~24)
K 時 在上午或下午 (0~11)
z 時區
這些表示可以了解下就行,用的時候知道有這些屬性。。。。。。。。。。。。。。
?
總結
以上是生活随笔為你收集整理的SimpleDateFormat 日期,时间格式转化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么有婆媳关系没有公媳关系??
- 下一篇: Cannot format given