作为一名开发人员,从前端 接收到各种各样的数据需要转变成为我们所用的格式,比如前端如果传来一个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之间)相关推荐

  1. spring mvc使用@InitBinder 标签将日期格式字符串转换成Timestamp类型

    在SpringMVC中,可以采用实体类来自动绑定表单传递过来的参数,但需要注意的是,若实体类属性是Date或Timestamp类型的话,SpringMVC将无法自动绑定,会产生400错误,所以需要我们 ...

  2. js 各种时间格式的转换

    js 各种时间格式的转换 时间格式 示例 中国标准时间 Fri Mar 18 2022 14:24:45 GMT+0800(中国标准时间) 部分可读字符串 Fri Mar 18 2022 格林威治时间 ...

  3. JavaScript对象与JSON格式的转换

    在Web开发中,JavaScript和JSON是两个经常用到的概念.JavaScript是一种脚本语言,可以用来操作网页的内容和行为,而JSON是一种轻量级的数据交换格式,通常用于在客户端和服务器之间 ...

  4. java定义时间格式大全_Java时间格式转换大全

    package com.date; import java.text.DateFormat; import java.text.ParseException; import java.text.Par ...

  5. android 时间格式 各种转换

    一些常用的时间格式转换 import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.Cale ...

  6. php用什么服务器系统时间格式,php中时间戳和日期格式的转换

    一,PHP时间戳函数获取指定日期的unix时间戳 strtotime("2009-1-22″) 示例如下: echo strtotime("2009-1-22″) 结果:12325 ...

  7. ISO8601时间格式的转换

    java中ISO8601标准时间格式的转换 最近对接第三方平台接口,返回的日期是ISO8601标准时间(yyyy-MM-dd'T'HH:mm:ssZZ),例: "startTime" ...

  8. python文件写入字典格式输出_Python把对应格式的csv文件转换成字典类型存储脚本的方法...

    该脚本是为了结合之前的编写的脚本,来实现数据的比对模块,实现数据的自动化!由于数据格式是定死的,该代码只做参考,有什么问题可以私信我! CSV的数据格式截图如下: readDataToDic.py源代 ...

  9. PostgreSQL | 将 timestamptz 格式的UTC时间转换成北京时间

    PostgreSQL | 将 timestamptz 格式的UTC时间转换成北京时间 1.将UTC时间"2020-08-25 02:11:34.59741+00" 转换成北京时间( ...

最新文章

  1. linux nor flash 读写,9.2 NorFLASH读写实验——M25PExx
  2. incon函数图像c语言,[转载]c语言经典题目
  3. Linux下第一个java程序没有成功
  4. MongoDB(课时18 修改器)
  5. 工业机器人调运角度_工业机器人如何精准选型,这九大参数告诉你!
  6. 服务注册不进eureka
  7. java 有意思面试题_一些JAVA中有趣的面试题
  8. easyui 时间段校验,开始时间小于结束时间,并且时间间隔不能超过30天
  9. Axis2发布webservice(3)--axis2生成wsdl文件,并利用wsdl文件来生成WebService的Java代码
  10. python_55_局部和全局变量
  11. 标准输入输出详解(C++)
  12. 2021年度 Egon Balas 奖得主:达摩院印卧涛
  13. 数据挖掘导论课后习题答案-第六章
  14. 【gp数据库】你可能不知道却超级实用的函数
  15. 【Unity】天气特效:打雷下雨
  16. java程序员待遇怎么样_上海海文告诉你Java程序员工资待遇到底如何
  17. 详解物理学四大神兽————麦克斯韦妖
  18. Tomcat配置指定JDK
  19. java io 内存增长_Java IO 总结
  20. html母亲节主题网页源码jd

热门文章

  1. 洛谷 P2530 [SHOI2001] 化工厂装箱员
  2. ubuntu使用记录(3)ubuntu 防火墙开放端口(开启ssh)
  3. Kettle 记录集连接实战
  4. android+腾讯地图h5,在uniapp H5项目中使用腾讯地图sdk
  5. P1796 汤姆斯的天堂梦
  6. Kubernetes: kubectl 插件管理器 Krew 安装
  7. 银河麒麟桌面操作系统V10创建热点
  8. 传国宝玺 第三部 巴山藏宝洞 第三十四章 千魂魈
  9. 全国首例微信三级分销被认定为传销,三级分销“身世”揭秘(上)
  10. GluonCV跑代码经常碰到的问题