Java中时间类的处理

本文介绍了Java中日期时间的处理,包括使用SimpleDateFormat进行格式化和解析,讲解了各种日期时间格式字符的含义,如yyyy、MM、dd等,并通过示例展示了如何将日期时间转换为不同格式的字符串。同时,提到了日期时间字符串在Java和C#之间传递时可能遇到的T字符处理问题,以及在JSON转换中日期时间格式的注意事项。
摘要由CSDN通过智能技术生成

1.转换操作

首先要新建一个Data的时间类,这个类的具体操作可以百度

Date currentTime = new Date();

然后如果我们需要确定对应固定的时间格式的时候,我们就需要对时间进行转换。

用到SimpleDateFormat 类,具体详细的实现方法也可以百度,这里列出几个常见的。

Date now=new Date();

SimpleDateFormat CeshiFmt0=new SimpleDateFormat("Gyyyy年MM月dd日 HH时mm分ss秒");
System.out.println(CeshiFmt0.format(now));//公元2010年07月27日 09时19分29秒

SimpleDateFormat CeshiFmt1=new SimpleDateFormat("yyyy/MM/dd HH:mm"); 
System.out.println(CeshiFmt1.format(now));//2010/07/27 09:19

SimpleDateFormat CeshiFmt2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(CeshiFmt2.format(now));//2010-07-27 09:19:29

SimpleDateFormat CeshiFmt3=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");
System.out.println(CeshiFmt3.format(now));//2010年07月27日 09时19分29秒 星期二 

SimpleDateFormat CeshiFmt4=new SimpleDateFormat("yyyy/MM/dd E"); 
System.out.println(CeshiFmt4.format(now));//2010/07/27 星期二

SimpleDateFormat CeshiFmt5=new SimpleDateFormat( 
"一年中的第 D 天 ,第w个星期 ,一个月中第W个星期 ,k时 z时区");
System.out.println(CeshiFmt5.format(now));//一年中的第 208 天 ,第31个星期 ,一个月中第5个星期 ,9时 CST时区

通过上面的代码可以看出,我们要理解对应字符的意义,比如:yyyy,MM,dd,G,E等等。

像MM也可以只用M,区别在于,当实际月份是2月份时,MM会自动填充0,显示的是02,而M则不会,显示的只是2。

 具体的字符含义可以参考下面的表格和图片。

yyyy:年
MM:月
dd:日
hh:1~12小时制(1-12)
HH:24小时制(0-23)
mm:分
ss:秒
S:毫秒
E:星期几
D:一年中的第几天
F:一月中的第几个星期(会把这个月总共过的天数除以7)
w:一年中的第几个星期
W:一月中的第几星期(会根据实际情况来算)
a:上下午标识
k:和HH差不多,表示一天24小时制(1-24)。
K:和hh差不多,表示一天12小时制(0-11)。
z:表示时区  

2.关于其中是否要添加‘T’的操作

日期和时间的组合表示法编辑合并表示时,要在时间前面加一大写字母T

这些A——Z,a——z这些字母(不被单引号包围的)会被特殊处理替换为对应的日期时间,其他的字符串还是原样输出。

所以要在其中添加中文汉字可以不用带‘’单引号,如上面的例子,但是要添加固定的英文字符,则需要添加''单引号,假如要添加字符串aaa,则需要在aaa 的外面添加单引号即可,例如'aaa'。

 Date currentTime = new Date();
 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
//"yyyy-MM-dd HH:mm:ss"
String dateString = formatter.format(currentTime);

上面时java的数据处理,下面讲的是把java处理的数据传入到用C#语言写的代码中进行处理。 

然后这里猜测解释一下,这个日期类型的变量在处理其对应的字符串时,会把T自动转换成一个空格,如果有多个T就会报格式错误,如果有多余的空格他会自动处理成对应的数据类型。

例如:

2021-10-16T22:12:25.000的数据,存进去之后变成2021-10-16 22:12:25.000  (原数据有一个T)

2021 -10-16T22: 12:25.000的数据,存进去之后变成2021-10-16 22:12:25.000 (原数据多了几个空格)

2021-10-16TT22:12:25.000的数据就会报错。

虽然存进去之后显示的数据都是2021-10-16 22:12:25.000 

但是使用Newtonsoft.Json 转换DateTime类型时,若使用标准转换,则字符串内会有一个T(虽然再转换成DateTime没有问题)。

用微软的官方方法读取之后都会变成2021-10-16T22:12:25.000,这时,如果自己有需求就需要单独处理了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值