Linux下DateFormat的parse方法出現”ParseException”異常
public static Date formatStringToDate(String source, String pattern) throws Exception { if (StringUtils.isNull(source)) { source = getNowDate(); } SimpleDateFormat formateDate = new SimpleDateFormat(pattern); String newDate = formateDate.format(DateFormat.getDateInstance().parse(source)); return formateDate.parse(newDate); }
source為傳入的字串時間,pattern為時間格式,目前用到的為:yyyy-MM-dd HH:mm:ss ;
在Windows上執行沒有問題,但是在linux上執行就報錯了:
java.text.ParseException: Unparseable date: "2018-06-01 14:30:40"
java.text.DateFormat.parse(DateFormat.java:366)
網上查了查說是linux不支援這種格式的轉化,不認識這種格式 (具體原因還沒找,希望的老哥告知);於是照著網上的老哥提供的方法寫了另一個時間轉化的工具類
順便提一下判斷系統的方法:public static Date formatStringToDateLinux(String source) throws Exception { Date dt = new Date(); String[] parts = source.split(" "); if(parts.length == 2){ String[] partsDate = parts[0].split("-"); String[] partsTime = parts[1].split(":"); if(partsDate.length == 3 && partsTime.length == 3){ int years = Integer.parseInt(partsDate[0]); int months = Integer.parseInt(partsDate[1]); int days = Integer.parseInt(partsDate[2]); int hours = Integer.parseInt(partsTime[0]); int minutes = Integer.parseInt(partsTime[1]); int seconds = Integer.parseInt(partsTime[2]); GregorianCalendar gc = new GregorianCalendar(years,months, days,hours,minutes,seconds); dt = gc.getTime(); } } return dt; }
/** * 判斷windows系統 * * @return */ public static boolean isWindowsOS() { Properties props = System.getProperties(); if (props.getProperty("os.name").toLowerCase().contains("windows")) { return true; } return false; } /** * 判斷linux系統 * * @return */ public static boolean isLinuxOS() { Properties props = System.getProperties(); if (props.getProperty("os.name").toLowerCase().contains("linux")) { return true; } return false; } /** * 判斷mac系統 * * @return */ public static boolean isMacOS() { Properties props = System.getProperties(); if (props.getProperty("os.name").toLowerCase().contains("mac")) { return true; } return false; }
可以先判斷當前系統,再選擇使用哪個方法轉換, 或者直接都使用第二種方法 ;
if(HawkOSOperator.isLinuxOS()){
last.setTime(DateUtil.formatStringToDateLinux(lastModifyTime));
}else {
last.setTime(DateUtil.formatStringToDate(lastModifyTime, "yyyy-MM-dd HH:mm:ss"));
}
我的日期字串格式是”yyyy-MM-dd HH:mm:ss”的,所以程式碼如上。要轉化別的格式,擷取字元中的時候會不一樣。但,它的核心程式碼是 “GregorianCalendar gc = GregorianCalendar(years, months, days, hours, minutes, seconds);”。也就是用GregorianCalendar類來進行String到Date型別的轉換
感謝老哥gaoligaoli:https://blog.csdn.net/gaoligaoli/article/details/2133582
相關推薦
Linux下DateFormat的parse方法出現”ParseException”異常
做專案用到了時間格式化,將字串轉成Date格式,用了下面的工具方法public static Date formatStringToDate(String source, String pattern) throws Exception { if (StringU
linux下vi/vim開啟檔案異常及處理方法
用vi/vim開啟之前寫過的c程式碼,會多次出現這個狀況: 網易有道詞典翻譯如下: 檔案 編輯 檢視 搜尋 終端 幫助 E325:注意 找到一個名為“.mybash.c.swp”的交換檔案 業主:fr 日期:2018年11月11日11:31:55
在LINUX下安裝DISCUZ出現的錯誤:advice_mysqli_connect 解決方法。
在用curl進行模擬呼叫時,curl接收內容會出現"Empty reply from server"的錯誤。 修改httpd.conf,在虛擬主機上新增如下內容:EnableSendfile offEnableMMAP off 在安裝discuz時,無法安裝,提示錯誤如下:advice_mysqli_co
linux下yum命令出現Loaded plugins: fastestmirror
tle enable yum test enabled net post sdn http linux下yum命令出現Loaded plugins: fastestmirror yum install的時候提示:Loaded plugins: fastestmirror
mysql 忘記了root的password(linux下解決方法,window同理)
.cn rac oot 命令行 linu size word sta ont mysql 忘記了root的password的時候的解決步驟, 1: cd /etc/mysql/(進入mysql的配置文件夾) 2:vim my.cnf \skip-grant-t
linux下yum命令出現Loaded plugins: fastestmirror Determining fastest mirrors
找到 plugin mir con test lin fast load min 今天yum install的時候出問題了,找了半天才找到一個可行的解決辦法 fastestmirror是yum的一個加速插件,這裏是插件提示信息是插件不能用了。 不能用就先別用唄,禁用掉,先y
記錄Window系統下myeclipes連接linux下mysql所出現的一個bug
給賬號 onf flush 問題 info drive strong user BE 記錄myeclipes遠程連接mysql所出現的一個bug 今天在玩框架hibernate時,出現一個非常費解的bug,話不多說,先看bug Access denied for
linux下各種方法檢視tomcat日誌以及檢視檔案內容指令
寬巨集大量,是惟一能夠照亮偉大靈魂的光芒。——《巴黎聖母院》 1、引言 本週在Linux部署springboot專案的時候,採用自動化部署,一直以來都採用jar包的部署方式,本次採用war包的方式部署到tomcat容器。雖然我在專案中配置了Log
在linux下使用matplotlib出現ImportError:no module named _tkinter
今天把寫的畫圖模組放到伺服器上呼叫,linux系統下,出現ImportError:no module named _tkinter ,從網上找了很多方法 搜到這些,看著就頭大,還沒來的及準備開始,公司技術大哥直接就說敲上這段程式碼就沒問題了 import m
linux下安裝laravel出現警告 Do not run Composer as root/super user! See https://getcomposer.org/root for details 解決
1.解決思路新增一個普通使用者執行安裝操作 2.伺服器新增普通使用者參考 :https://www.cnblogs.com/victorcode/p/9988159.html 3.新增完成需要給這個使用者新增許可權(以張三為例) 並且賦予 sudoers檔案寫許可權 # chmod u+w
linux下安裝redis出現錯誤及其解決方案
測試於:Redis2.6.17 | CentOS 5.7 安裝: 通過wget方式直接在linux上下載Redis wget http://download.redis.io/releases/red
linux下的centos出現error while loading shared libraries錯誤
例如serice searchd start開啟sphinx時提示:error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such fil
Linux下虛擬機器出現 Unable to change virtual machine power state: Internal error
1.前段時間,虛擬機器正在使用的時候.電腦意外關機,在啟動的時候出現如下錯誤; Linux下虛擬機器出現(Unable to change virtual machine power state
linux下除錯方法記錄
1、segment fault segment fault是幾乎多有C程式設計師都會碰到的問題,多為記憶體問題,因為glibc庫中基本所有的函式都預設形參指標是非空的,這樣以下原因就可能導致段錯誤: (1)引用一個包含非法值的指標(當然包括空指標)。 (2)未得到正確的許可
Linux下安裝MySQL出現“ls: /var/lib/mysql/*.pid: 沒有那個檔案或目錄”
環境 RedHat Linux 9 + VWWare 8.0 + SSH 3.2.9 + Putty 0.62 + MySQL 3.2 + MySQL 5.5 問題 Linux下安裝MySQL出現如
Linux下執行程式出現 Text file busy 時的解決辦法
Linux下執行程式出現 Text file busy 時的解決辦法。 使用 fuser 命令檢視程式檔案被哪個程序佔用,然後用 kill 命令殺死該程序,即解決問題。fuser命令是用來顯示所有正在使用著指定的file, file system 或者 soc
Linux下啟動Tomcat出現多個java程序
先記錄下收集的。 (1)修改tomcat的catalina.sh檔案,配置記憶體 (2)gcc的問題,後來我們降級了發現也沒用,這個和jvm沒什麼關係 (3)建立個新使用者,試了也沒用 (4)許可權的問題, 試了上面四種方法都沒解決,大家如果出現這種問題可以用以上四
Linux root目錄下的.gvfs出現異常處理
localhost 掛載 als 內容 服務 處理 ftp 遠程 提示 最近一段突然有收到一些磁盤告警,去看下結果告警內容是說在root的用戶的家目錄下有一個沒有權限訪問的目錄.gvfs,期間使用cp復制rm刪除都是提示沒有權限,看到也覺得很奇怪,都是使用root用戶
關於在linux下出現stdio.h文件不存在等gcc標準庫不能找到的解決的方法
應該 ews con boot1 http 一次 body apt 說明 首先說明一下我的系統配置:ubuntu 12.04 ? ? gcc 4.6.3 有幾天沒有
[轉] linux下shell中使用上下鍵翻出歷史命名時出現^[[A^[[A^[[A^[[B^[[B的問題解決,Linux使用退格鍵時出現^H解決方法
XA TP brk 因此 上下 參數 csdn def 無法 [From] https://www.zmrbk.com/post-2030.html https://blog.csdn.net/suifengshiyu/article/details/40952771