一、Java中UTC时间转换
import java.text.SimpleDateFormat; import java.util.Date; import java.util.Calendar; public class UTCTimeConverter { public static void main(String[] args) { // SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd"); try { String utcDateStr = "2018-01-22T09:12:43.083Z"; Date date = sdf1.parse(utcDateStr.substring(0, 19));// 拿到Date对象 Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.HOUR_OF_DAY, 8); // 加8小时 String localDateStr = sdf2.format(cal.getTime()); String str = sdf2.format(localDateStr);// 输出格式:2017-01-22 09:28:33 System.out.println(str); } catch (Exception e) { e.printStackTrace(); } } }
三、Java进行Base64的编码(Encode)与解码(Decode)
URL传Base64 造成报错 Illegal base64 character 20
原因:
base64 编码中使用了加号(+),而 + 在 URL 传递时会被当成空格,因此造成了base64字符串被更改,在服务器端解码后就会出错。
解决方法:
对传进来的字符串做处理,把空格更改成“+”号,利用java的replaceAll() 方法。
String s = str.replaceAll(" +","+");
四、com.alibaba.fastjson.JSON对类对象的序列化与反序列化
使用JSONObject.toJSONString()方法转换实体类时,属性名称默认首字母小写问题
六、Java异步编程
java并发编程——Java线程池 ExecutorService
import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Sample{ public void doSync(){ ExecutorService executorService = Executors.newSingleThreadExecutor(); executorService.execute(new Runnable() { public void run() { //do here } }); executorService.shutdown(); } }