SimpleDateFormat格式

错误使用SimpleDateFormat导致时间显示错误

SimpleDateFormat格式

我每次从数据库读存入的时间,然后new Date(longTime),再用SimpleDateFormat格式化,但总是显示时间不对,最后找到原因是new SimpleDateFormat时候格式要严格遵守规定。
常用格式有:
年:y
月:M
日:d
时:h(1~12) H(0~23)
分:m
秒:s
毫秒:S
星期:E
写几个对应格式符号,就显示几位,不够用0填充;例如 格式:“hh:mmm” 则12:24显示为12:024;如果只是一位,则显示最少可以显示时间的位数;如果不是一位但不能显示全部位数,则从左向右显示;示例如下:

String dateStr1= new SimpleDateFormat("yy.MM.dd HH:mm").format(date);
                            String dateStr2= new SimpleDateFormat("y.M.d H:m:s:S").format(date);
                            String dateStr3= new SimpleDateFormat("yyy.M.d H:m:s:S").format(date);
                            String dateStr4= new SimpleDateFormat("yyyyy.MMM.d H:m:s:S").format(date);
                            Log.e("发送时间", "onClick: Date"+ dateStr);
                            Log.e("发送时间1", "onClick: Date"+ dateStr1);
                            Log.e("发送时间2", "onClick: Date"+ dateStr2);
                            Log.e("发送时间3", "onClick: Date"+ dateStr3);
                            Log.e("发送时间4", "onClick: Date"+ dateStr4);

在这里插入图片描述

我起初就是把分对应的mm写成大写MM,而这个对应的是月份,所以每次都显示的分是当前月份。
简单示例:

    SimpleDateFormat format=new SimpleDateFormat("yyyy.MM.dd-HH:mm");
	Date date=new Date();
	format.format(date);//@return dateString  2020.04.11-23:23```
	

格式字符串可以随便写,比如"yyyy年MM月dd日",当然顺序不必遵守年月日时分秒顺序;但小心我的前车之鉴HH:MM。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值