作为一名开发人员,从前端 接收到各种各样的数据需要转变成为我们所用的格式,比如前端如果传来一个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. NMSE考试常见问题
  2. Java面试题之一 (转)
  3. .NET开发者常会忽略的几个错误
  4. blob数据类型_MySQL 8.0 基本操作步骤:3.字段和数据类型的选择
  5. 腾讯企业邮箱外域邮件发送失败原因及其解决方案
  6. 【报告分享】2021年微信视频号半年度生态趋势调查报告.pdf(附下载链接)
  7. LeetCode-124.二叉树中的最大路径和
  8. Bongiovi DPS for Mac(优秀的声音增强软件)
  9. vc++/c++ 汉字取拼音首字母
  10. VTK学习笔记(十九)vtk polydata
  11. 【197期】华为OD两轮技术面试记录,给后来人一个参考!
  12. python中pow_Python中float的内置pow()和math.pow()之间的区别?
  13. nginx基础:nginx访问限制
  14. 独立样本与配对样本t检验
  15. crontab每分钟执行一次任务
  16. 通过网页免费下载音乐(F12)
  17. xilinx apu ,rpu特点 及通信
  18. 【现成工具】java获取国家法定节假日包含指定月份节假日和周末
  19. java:判断字符串的开始或结尾
  20. Unity SKFramework框架(十七)、FreeCameraController 上帝视角/自由视角相机控制脚本

热门文章

  1. 为什么Vertu没有成为诺基亚的iPhone?
  2. 鸟哥Linux学习之——数据流重定向
  3. 唇语识别技术的开源教程,听不见声音我也能知道你说什么!
  4. CDN,你知道是什么吗?
  5. NOMS管和PMOS管的区别
  6. 为什么要对数据进行归一化处理
  7. 程序员给女朋友庆祝节日的方式
  8. 浪潮服务器上RAID配置实战及RAID相关知识
  9. RTD2785T RTD2785R 2K eDP屏驱动芯片介绍
  10. 用html给一张图片做多个热区链接,html 锚点链接 图像热区链接