有关于格式的转换(时间、各种类型、集合、Json之间)
作为一名开发人员,从前端 接收到各种各样的数据需要转变成为我们所用的格式,比如前端如果传来一个date,那我们需要获取到之后进行一系列的操作,那接下来就分成几块来记录关于格式的转换。
一、时间的转换
/*** 先回顾一下:* Date内部是一个long类型的值,System.currentTimeMillis()* Date是表示时刻,是绝对时间与年月日无关* Calendar是表示年历,其有表示公历的子类GregorianCalendar* DateFormat:格式化,可将日期与时间与字符串进行相互转化(常用SimpleDateFormat)*yyyy表示四位的年;MM表示两位的月;dd表示两位的日 HH:mm:ss 时分秒 大写H为24小时,小写为12小时*///将时间值转化为StringSimpleDateFormat date2StrFormat = new SimpleDateFormat("yyyy-MM-dd");String date2Str = date2StrFormat.format(new Date());System.out.println(new Date());//Thu Nov 01 14:35:57 CST 2018System.out.println(date2Str);//2018-11-01//将字符串转为Date和想要的格式String dateStr = "2018-02-28 21:05:12";SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:ss:mm");Date str2Date = dateFormat.parse(dateStr);System.out.println(str2Date);//Wed Feb 28 21:12:05 CST 2018//先将字符串转为Date类型,再将其格式化SimpleDateFormat date22StrFormat = new SimpleDateFormat("yyyy年MM月dd日 HH时ss分mm秒");System.out.println(date22StrFormat.format(str2Date));//2018年02月28日 21时05分12秒//获取Date 将其转化为自己的格式GregorianCalendar gregorianCalendar = new GregorianCalendar();System.out.println(gregorianCalendar.getTime());//Thu Nov 01 14:35:57 CST 2018SimpleDateFormat yMFormat = new SimpleDateFormat("yyyy/MM");String yM = yMFormat.format(gregorianCalendar.getTime());System.out.println(yM);//2018/11//对Calendar进行根据Date或者毫秒值、指定字段等来设置时间 可用于一些定时任务Calendar calendar = Calendar.getInstance();System.out.println(calendar.getTime());//Thu Nov 01 14:35:57 CST 2018calendar.add(Calendar.DAY_OF_MONTH,1);//加一天 需要用的时候看API太多了System.out.println(calendar.getTime());//Fri Nov 02 14:35:57 CST 2018calendar.set(Calendar.YEAR,2022);//设成指定月份System.out.println(calendar.getTime());//Wed Nov 02 14:41:43 CST 2022
Calendar 的A .compareTo(B) A早于返回-1 ,晚于返回1,时间相同返回0
public int compareTo(Date anotherDate) {long thisTime = getMillisOf(this);long anotherTime = getMillisOf(anotherDate);return (thisTime<anotherTime ? -1 : (thisTime==anotherTime ? 0 : 1));}
二、各种基本类型之间转化
/*** 比较常用的是在String和各个基本类型之间的转化* String中有valueOf可以将任何东西为其所同* 其他包装类用valueOf将*/String str = "";System.out.println(str.isEmpty());String s = String.valueOf(1);//String --》包装类Integer integer = Integer.valueOf("12");System.out.println(integer.getClass());//string类 --》 基本类int int2 = Integer.parseInt("12");// 其他类型-->StringString s1 = String.valueOf(1);String s2 = Integer.toString(12);String s3 = "" + 21;
三、集合之间转化
1、比如平常的map里面的Value是一个ListMap<Integer, List<XxxxBO>> exampleMap = new HashMap<>();exampleMap.put(1, new ArrayList<XxxxBO>());exampleMap.put(2, new ArrayList<XxxxBO>());
//将其values转为ListList<Integer> departmentIds = new ArrayList<>(exampleMap.keySet());2、List转setString[] strArray = {"aaa", "bbb", "ccc","aaa"};List<String> strList = Arrays.asList(strArray);System.out.println(strList);//[aaa, bbb, ccc, aaa]//set 可以去重Set strSet = new HashSet();strSet.addAll(strList);System.out.println(strSet);//[aaa, ccc, bbb]//一般Collections的使用场景不多,需要Collection转数组 使用其toArray()方法即可
注:https://blog.csdn.net/LCF_lxf_ldy/article/details/83111579 3、对象数组转成List 使用数组的asList方法
Element[] array = {new Element(1),new Element(2),new Element(3)};
ArrayList<Element> arrayList = new ArrayList<Element>(Arrays.asList(array));
/**
ArrayList(Collection < ? extends E > c) : 构造一个list,用迭代器将指定collection中的元素按顺序放入其中。这个构造方法的实现过程:
1. 将collection c的元素转换成一个数组
2. 将这个数组复制给ArrayList的成员变量数组“elementData”
3.使用Arrays.asList这种方法生成的list是不能使用list.add remove等方法的,因为Arrays.asList()方法返回的是一个和ArrayList同名的自定义内部类
**/
四、Json之间的转换
fastJson对于json格式字符串的解析主要用到了一下三个类:
JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换。
JSONObject:fastJson提供的json对象。
JSONArray:fastJson提供json数组对象。/*** 我们通过HttpServletRequest在前端接收到的json参数总是需要通过后台的实体类来接收* 一般使用的都是阿里的fastjson来转换,当然还有其他方式,但是本案例只用了fastjson* 直接使用parseObject实现json类--》实体类*/BufferedReader br = new BufferedReader(new InputStreamReader(req.getInputStream(), CharEncoding.UTF_8));String line;StringBuilder reqBody = new StringBuilder();while ((line = br.readLine()) != null) {reqBody.append(line);}//VO是接收前端传过来的数据的实体类XxxVO xxxVO = JSONObject.parseObject(reqBody, XxxVO.class);//将需要与前端交互的数据以json数据格式传给前端String jsonString = JSONObject.toJSONString(XxxVO.class);String json = " {" +" \"ids\": [133]," +" \"id\": 12" +" }";JSONObject jsonObject = JSON.parseObject(json);String ids = jsonObject.getString("ids");int id = jsonObject.getInteger("id");System.out.println(ids+ids.getClass());System.out.println(id);//复杂格式json字符串 根据不同的key取值String jsonStr = "{\"teacherName\":\"crystall\",\"teacherAge\":27,\"course\":{\"courseName\":\"english\",\"code\":1270},\"students\":[{\"studentName\":\"lily\",\"studentAge\":12},{\"studentName\":\"lucy\",\"studentAge\":15}]}";JSONObject jsonObject1 = JSON.parseObject(jsonStr);//JSONObject jsonObject1 = JSONObject.parseObject(COMPLEX_JSON_STR);//因为JSONObject继承了JSON,所以这样也是可以的String teacherName = jsonObject1.getString("teacherName");Integer teacherAge = jsonObject1.getInteger("teacherAge");JSONObject course = jsonObject1.getJSONObject("course");JSONArray students = jsonObject1.getJSONArray("students");System.out.println(students);//为了方便和统一,将其json统一为String类型
有关于格式的转换(时间、各种类型、集合、Json之间)相关推荐
- spring mvc使用@InitBinder 标签将日期格式字符串转换成Timestamp类型
在SpringMVC中,可以采用实体类来自动绑定表单传递过来的参数,但需要注意的是,若实体类属性是Date或Timestamp类型的话,SpringMVC将无法自动绑定,会产生400错误,所以需要我们 ...
- js 各种时间格式的转换
js 各种时间格式的转换 时间格式 示例 中国标准时间 Fri Mar 18 2022 14:24:45 GMT+0800(中国标准时间) 部分可读字符串 Fri Mar 18 2022 格林威治时间 ...
- JavaScript对象与JSON格式的转换
在Web开发中,JavaScript和JSON是两个经常用到的概念.JavaScript是一种脚本语言,可以用来操作网页的内容和行为,而JSON是一种轻量级的数据交换格式,通常用于在客户端和服务器之间 ...
- java定义时间格式大全_Java时间格式转换大全
package com.date; import java.text.DateFormat; import java.text.ParseException; import java.text.Par ...
- android 时间格式 各种转换
一些常用的时间格式转换 import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.Cale ...
- php用什么服务器系统时间格式,php中时间戳和日期格式的转换
一,PHP时间戳函数获取指定日期的unix时间戳 strtotime("2009-1-22″) 示例如下: echo strtotime("2009-1-22″) 结果:12325 ...
- ISO8601时间格式的转换
java中ISO8601标准时间格式的转换 最近对接第三方平台接口,返回的日期是ISO8601标准时间(yyyy-MM-dd'T'HH:mm:ssZZ),例: "startTime" ...
- python文件写入字典格式输出_Python把对应格式的csv文件转换成字典类型存储脚本的方法...
该脚本是为了结合之前的编写的脚本,来实现数据的比对模块,实现数据的自动化!由于数据格式是定死的,该代码只做参考,有什么问题可以私信我! CSV的数据格式截图如下: readDataToDic.py源代 ...
- PostgreSQL | 将 timestamptz 格式的UTC时间转换成北京时间
PostgreSQL | 将 timestamptz 格式的UTC时间转换成北京时间 1.将UTC时间"2020-08-25 02:11:34.59741+00" 转换成北京时间( ...
最新文章
- linux nor flash 读写,9.2 NorFLASH读写实验——M25PExx
- incon函数图像c语言,[转载]c语言经典题目
- Linux下第一个java程序没有成功
- MongoDB(课时18 修改器)
- 工业机器人调运角度_工业机器人如何精准选型,这九大参数告诉你!
- 服务注册不进eureka
- java 有意思面试题_一些JAVA中有趣的面试题
- easyui 时间段校验,开始时间小于结束时间,并且时间间隔不能超过30天
- Axis2发布webservice(3)--axis2生成wsdl文件,并利用wsdl文件来生成WebService的Java代码
- python_55_局部和全局变量
- 标准输入输出详解(C++)
- 2021年度 Egon Balas 奖得主:达摩院印卧涛
- 数据挖掘导论课后习题答案-第六章
- 【gp数据库】你可能不知道却超级实用的函数
- 【Unity】天气特效:打雷下雨
- java程序员待遇怎么样_上海海文告诉你Java程序员工资待遇到底如何
- 详解物理学四大神兽————麦克斯韦妖
- Tomcat配置指定JDK
- java io 内存增长_Java IO 总结
- html母亲节主题网页源码jd
热门文章
- 洛谷 P2530 [SHOI2001] 化工厂装箱员
- ubuntu使用记录(3)ubuntu 防火墙开放端口(开启ssh)
- Kettle 记录集连接实战
- android+腾讯地图h5,在uniapp H5项目中使用腾讯地图sdk
- P1796 汤姆斯的天堂梦
- Kubernetes: kubectl 插件管理器 Krew 安装
- 银河麒麟桌面操作系统V10创建热点
- 传国宝玺 第三部 巴山藏宝洞 第三十四章 千魂魈
- 全国首例微信三级分销被认定为传销,三级分销“身世”揭秘(上)
- GluonCV跑代码经常碰到的问题