java.lang.NumberFormatException: multiple points错误问题
生活随笔
收集整理的這篇文章主要介紹了
java.lang.NumberFormatException: multiple points错误问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近項目一直會出現時間轉換報錯,一直不知道是什么問題???
?
java.lang.NumberFormatException: multiple pointsat sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1110)at java.lang.Double.parseDouble(Double.java:540)at java.text.DigitList.getDouble(DigitList.java:168)at java.text.DecimalFormat.parse(DecimalFormat.java:1321)at java.text.SimpleDateFormat.subParse(SimpleDateFormat.java:1793)at java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1455)?
代碼如下:
public final class DateUtil {private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");public static Date parseDateTime(String dateTimeStr) {try {return dateFormat.parse(dateTimeStr);} catch (ParseException e) {// TODO Auto-generated catch block e.printStackTrace();}return null;}}?
如果是上述代碼,那么在多線程環境下,你可能會收到如標題所示的錯誤。
解決辦法
1、建議在每個方法中都new一個新的SimpleDateFormat對象,這樣子就可以避免這種問題。
2、也可以使用保存線程局部變量的ThreadLocal對象來保存每一個線程的SimpleDateFormat對象。
?
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;public class DateUtils {private static final String format = "yyyy-MM-dd";//每一個線程private static final ThreadLocal<SimpleDateFormat> threadLocal = new ThreadLocal<SimpleDateFormat>();public static Date covertDateStrToDate(String dateStr){SimpleDateFormat sdf = null;sdf = threadLocal.get();if (sdf == null){sdf = new SimpleDateFormat(format);}// Date date = null;try {System.out.println("當前線程為:" + Thread.currentThread().getName());date = sdf.parse(dateStr);} catch (ParseException e) {e.printStackTrace();}return date;} }?
轉載于:https://www.cnblogs.com/mr-wuxiansheng/p/10340513.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的java.lang.NumberFormatException: multiple points错误问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工银开元信用卡额度多少?快速提额看这几招
- 下一篇: 【集合工具类:Collections】