[轉載] Java中日期格式轉換

參考鏈接: Java中的類型轉換和示例

Code:

? ?

??

?/**? ? ?* 字符串轉換為java.util.Date<br>? ? ?* 支持格式為 yyyy.MM.dd G 'at' hh:mm:ss z 如 '2002-1-1 AD at 22:10:59 PSD'<br>? ? ?* yy/MM/dd HH:mm:ss 如 '2002/1/1 17:55:00'<br>? ? ?* yy/MM/dd HH:mm:ss pm 如 '2002/1/1 17:55:00 pm'<br>? ? ?* yy-MM-dd HH:mm:ss 如 '2002-1-1 17:55:00' <br>? ? ?* yy-MM-dd HH:mm:ss am 如 '2002-1-1 17:55:00 am' <br>? ? ?* @param time String 字符串<br>? ? ?* @return Date 日期<br>? ? ?*/? public static Date stringToDate(String time){? ? ? ?SimpleDateFormat formatter;? ? ? ?int tempPos=time.indexOf("AD") ;? ? ? ?time=time.trim() ;? ? ? ?formatter = new SimpleDateFormat ("yyyy.MM.dd G 'at' hh:mm:ss z");? ? ? ?if(tempPos>-1){? ? ? ? ?time=time.substring(0,tempPos)+? ? ? ? ? ? ? "公元"+time.substring(tempPos+"AD".length());//china? ? ? ? ?formatter = new SimpleDateFormat ("yyyy.MM.dd G 'at' hh:mm:ss z");? ? ? ?}? ? ? ?tempPos=time.indexOf("-");? ? ? ?if(tempPos>-1&&(time.indexOf(" ")<0)){? ? ? ? ?formatter = new SimpleDateFormat ("yyyyMMddHHmmssZ");? ? ? ?}? ? ? ?else if((time.indexOf("/")>-1) &&(time.indexOf(" ")>-1)){? ? ? ? ?formatter = new SimpleDateFormat ("yyyy/MM/dd HH:mm:ss");? ? ? ?}? ? ? ?else if((time.indexOf("-")>-1) &&(time.indexOf(" ")>-1)){? ? ? ? ?formatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");? ? ? ?}? ? ? ?else if((time.indexOf("/")>-1) &&(time.indexOf("am")>-1) ||(time.indexOf("pm")>-1)){? ? ? ? ?formatter = new SimpleDateFormat ("yyyy-MM-dd KK:mm:ss a");? ? ? ?}? ? ? ?else if((time.indexOf("-")>-1) &&(time.indexOf("am")>-1) ||(time.indexOf("pm")>-1)){? ? ? ? ?formatter = new SimpleDateFormat ("yyyy-MM-dd KK:mm:ss a");? ? ? ?}? ? ? ?ParsePosition pos = new ParsePosition(0);? ? ? ?java.util.Date ctime = formatter.parse(time, pos);? ? ? ? ?return ctime;? ?}? ? ? ?/**? ? ?* 將java.util.Date 格式轉換為字符串格式'yyyy-MM-dd HH:mm:ss'(24小時制)<br>? ? ?* 如Sat May 11 17:24:21 CST 2002 to '2002-05-11 17:24:21'<br>? ? ?* @param time Date 日期<br>? ? ?* @return String? ?字符串<br>? ? ?*/? ? ? ? ?public static String dateToString(Date time){? ? ? ?SimpleDateFormat formatter;? ? ? ?formatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");? ? ? ?String ctime = formatter.format(time);? ? ? ? ?return ctime;? ?}? ? ? ?/**? ? ?* 將java.util.Date 格式轉換為字符串格式'yyyy-MM-dd HH:mm:ss a'(12小時制)<br>? ? ?* 如Sat May 11 17:23:22 CST 2002 to '2002-05-11 05:23:22 下午'<br>? ? ?* @param time Date 日期<br>? ? ?* @param x int 任意整數如:1<br>? ? ?* @return String 字符串<br>? ? ?*/? public static String dateToString(Date time,int x){? ? ? ?SimpleDateFormat formatter;? ? ? ?formatter = new SimpleDateFormat ("yyyy-MM-dd KK:mm:ss a");? ? ? ?String ctime = formatter.format(time);? ? ? ? ?return ctime;? ?}? ? ? ?/**? ? ?*取系統當前時間:返回只值為如下形式? ? ?*2002-10-30 20:24:39? ? ?* @return String? ? ?*/? public static String Now(){? ? ? ?return dateToString(new Date());? ?}? ? ?/**? ? ?*取系統當前時間:返回只值為如下形式? ? ?*2002-10-30 08:28:56 下午? ? ?*@param hour 為任意整數? ? ?*@return String? ? ?*/? public static String Now(int hour){? ? ? ?return dateToString(new Date(),hour);? ?}? ? ? ?/**? ? ?*取系統當前時間:返回值為如下形式? ? ?*2002-10-30? ? ?*@return String? ? ?*/? public static String getYYYY_MM_DD(){? ? ? ?return dateToString(new Date()).substring(0,10);? ? ?}? ? ? ?/**? ? ?*取系統給定時間:返回值為如下形式? ? ?*2002-10-30? ? ?*@return String? ? ?*/? ? ?public static String getYYYY_MM_DD(String date){? ? ? ?return date.substring(0,10);? ? ?}? ? ?public static String getHour(){? ? ? ?SimpleDateFormat formatter;? ? ? ?formatter = new SimpleDateFormat ("H");? ? ? ?String ctime = formatter.format(new Date());? ? ? ?return ctime;? ? ? ?}? ? ?public static String getDay(){? ? ? ? ?SimpleDateFormat formatter;? ? ? ?formatter = new SimpleDateFormat ("d");? ? ? ?String ctime = formatter.format(new Date());? ? ? ?return ctime;? ? ? ?}? ? ?public static String getMonth(){? ? ? ?SimpleDateFormat formatter;? ? ? ?formatter = new SimpleDateFormat ("M");? ? ? ?String ctime = formatter.format(new Date());? ? ? ?return ctime;? ? ? ?}? ? ?public static String getYear(){? ? ? ?SimpleDateFormat formatter;? ? ? ?formatter = new SimpleDateFormat ("yyyy");? ? ? ?String ctime = formatter.format(new Date());? ? ? ?return ctime;? ? ? ?}? ? ? ? ? ? public static String getWeek(){? ? ? ?SimpleDateFormat formatter;? ? ? ?formatter = new SimpleDateFormat ("E");? ? ? ?String ctime = formatter.format(new Date());? ? ? ?return ctime;? ? ? ?}? ? ?在jsp頁面中的日期格式和sqlserver中的日期格式不一樣,怎樣統一?? ? ?在頁面上顯示輸出時,用下面的函數處理一下? ? ?public class DateUtil(){? ? ? ?public static String fmtShortEnu(Date myDate) {? ? ? ?SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");? ? ? ?String strDate = formatter.format(myDate);? ? ? ?return strDate;? ?}? ?}? ? ?new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");? ?new java.text.SimpleDateFormat("yyyy-MM-dd")? ?建議還是把sqlserver的字段類型改成varchar的吧,用字符串處理可以完全按照自己的意愿處理,沒有特殊的需求,不要使用date型? ? ? ?字串日期格式轉換? ? 用的API是SimpleDateFormat,它是屬於java.text.SimpleDateFormat,所以請記得import進來!? ? ?用法:? ? SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");? ? 這一行最重要,它確立了轉換的格式,yyyy是完整的西元年,MM是月份,dd是日期, 至於HH:mm:ss就不需要我再解釋了吧!? ? ps:為什麼有的格式大寫,有的格式小寫,那是怕避免混淆,例如MM是月份,mm是分;HH是24小時制,而hh是12小時制? ? ?1.字串轉日期:? ?  2002-10-8 15:30:22要把它轉成日期,可以用? ?  Date date=sdf.parse("2002-10-8 15:30:22");? ? 2.日期轉字串? ?  假如把今天的日期轉成字串可用? ?  String datestr=sdf.format(new Date());? ?  這個字串的內容便類似2002-10-08 14:55:38? ? 透過這個API我們便可以隨心所欲的將日期轉成我們想要的字串格式,例如希望將日期輸出成2002年10月08日,? ? 我們可以這麼寫:? ? SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");? ? String datestr=sdf.format(new Date());? ? datestr便會依照我們設定的格式輸出? ? ? ?//對日期格式的轉換成("yyyy-MM-dd")格式的方法? ?public java.sql.Date Convert(String str)? ?{? ? ? ?java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd");? ? ? ?try? ? ? {? ? ? ? ?java.util.Date d = sdf.parse(str);? ? ? ? ?java.sql.Date d1 = new java.sql.Date(d.getTime());? ? ? ? ?return d1;? ? ? ?}? ? ? ?catch(Exception ex)? ? ? ?{? ? ? ? ?ex.printStackTrace();? ? ? ? ?return null;? ? ? ?}? ?}? ?應用如下:? ?ctmt.setDate(7,this.Convert(info.getManBirth())); // @DATETIME? ? ? ?常用日期問題集錦? ? ? ?1、獲取服務器端當前日期:? ?<%@ page import="java.util.Date"%>? ?<%? ?Date myDate = new Date();? ?%>? ? ?2、獲取當前年、月、日:? ?<%@ page import="java.util.Date"%>? ? ?<%? ?Date myDate = new Date();? ?int thisYear = myDate.getYear() + 1900;//thisYear = 2003? ?int thisMonth = myDate.getMonth() + 1;//thisMonth = 5? ?int thisDate = myDate.getDate();//thisDate = 30? ?%>? ? ? ?3、按本地時區輸出當前日期? ?<%@ page import="java.util.Date"%>? ?<%? ?Date myDate = new Date();? ?out.println(myDate.toLocaleString());? ?%>? ?輸出結果為:? ?2003-5-30? ? ? 4、獲取數據庫中字段名為”publish_time“、類型為Datetime的值? ?<%@ page import="java.util.Date"%>? ?<%? ?...連接數據庫...? ?ResultSet rs = ...? ?Date sDate = rs.getDate("publish_time");? ?%>? ?[code]? ? ?5、按照指定格式打印日期? ?[code]? ?<%@ page import="java.util.Date"%>? ?<%@ page import="java.text.DateFormat"%>? ?<%? ?Date dNow = new Date();? ? ?SimpleDateFormat formatter = new SimpleDateFormat("E yyyy.MM.dd 'at' hh:mm:ss a zzz");? ?out.println("It is " + formatter.format(dNow));? ?%>? ? ?輸出的結果為:? ?It is 星期五 2003.05.30 at 11:30:46 上午 CST? ? (更為詳盡的格式符號請參看SimpleDateFormat類)? ? ?6、將字符串轉換為日期? ?<%@ page import="java.util.Date"%>? ?<%@ page import="java.text.DateFormat"%>? ?<%? ?String input = "1222-11-11";? ?SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");? ?Date t = null;? ?try{? ?t = formatter.parse(input);? ?out.println(t);? ?}catch(ParseException e){? ?out.println("unparseable using " + formatter);? ?}? ?%>? ?輸出結果為:? ?Fri Nov 11 00:00:00 CST 1222? ? 7、計算日期之間的間隔? ?<%@ page import="java.util.Date"%>? ?<%@ page import="java.text.DateFormat"%>? ?<%? ?String input = "2003-05-01";? ?SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");? ?Date d1 = null;? ?try{? ?d1 = formatter.parse(input);? ?}catch(ParseException e){? ?out.println("unparseable using " + formatter);? ?}? ? ?Date d2 = new Date();? ? ?long diff = d2.getTime() - d1.getTime();? ?out.println("Difference is " + (diff/(1000*60*60*24)) + " days.");? ?%>? ?輸出結果為:? ?Difference is 29 days.? ? ?8、日期的加減運算? ?方法:用Calendar類的add()方法? ?<%@ page import="java.util.*"%>? ?<%@ page import="java.text.*"%>? ?<%? ?Calendar now = Calendar.getInstance();? ?SimpleDateFormat formatter = new SimpleDateFormat("E yyyy.MM.dd 'at' hh:mm:ss a zzz");? ?out.println("It is now " + formatter.format(now.getTime()));? ?now.add(Calendar.DAY_OF_YEAR,-(365*2));? ?out.println("<br>");? ?out.println("Two years ago was " + formatter.format(now.getTime()));? ?%>? ?輸出結果為:? ?It is now 星期五 2003.05.30 at 01:45:32 下午 CST? ? Two years ago was 星期三 2001.05.30 at 01:45:32 下午 CST? ? ?9、比較日期? ?方法:用equals()、before()、after()方法? ?<%@ page import="java.util.*"%>? ?<%@ page import="java.text.*"%>? ?<%? ?DateFormat df = new SimpleDateFormat("yyy-MM-dd");? ?Date d1 = df.parse("2000-01-01");? ?Date d2 = df.parse("1999-12-31");? ? ?String relation = null;? ?if(d1.equals(d2))? ?relation = "the same date as";? ?else if(d1.before(d2))? ?relation = "before";? ?else? relation = "after";? ?out.println(d1 +" is " + relation + ' ' + d2);? ?%>? ?輸出結果為:? ?Sat Jan 01 00:00:00 CST 2000 is after Fri Dec 31 00:00:00 CST 1999? ? 10、記錄一件事所花費的時間? ?方法:調用兩次System.getTimeMillis()方法,求差值? ?<%@ page import="java.text.*"%>? ?<%? ?long t0,t1;? ?t0 = System.currentTimeMillis();? ?out.println("Cyc starts at " + t0);? ?int k = 0;? ?for(int i =0;i<100000;i++){? ?k += i;? ?}? ?t1 = System.currentTimeMillis();? ?out.println("<br>");? ?out.println("Cyc ends at " + t1);? ?out.println("<br>");? ?out.println("This run took " + (t1-t0) + "ms.");? ?%>? ? ?輸出結果為:? ?Cyc starts at 1054275312432? ? Cyc ends at 1054275312442? ? This run took 10ms.? ? ?其它:如何格式化小數? ? ?<%@ page import="java.text.*"%>? ?<%? ?DecimalFormat df = new DecimalFormat(",###.00");? ?double aNumber = 33665448856.6568975;? ?String result = df.format(aNumber);? ?out.println(result);? ?%>? ? ?輸出結果為:? ?33,665,448,856.66? ? ? ======================? ? ?日期比較:? ? ?在JAVA中日期的計算與比較可以使用Date和DateFormat來解決,下面是一段示例代碼:? ? ?import java.text.*;? ?import java.util.*;? ? ?public class Test{? ? ? public static void main(String[] args){? ?  try{? ?   Date date=new Date();? ?   DateFormat df=DateFormat.getDateTimeInstance();? ?   String now=df.format(date);? ?    System.out.println("現在時間:"+now);? ? ?   System.out.println("現在時間是否在16:00之前:"+date.before(df.parse("2004-12-24 16:00:00")));? ?   }? ?  catch(ParseException e){System.out.print(e.getMessage());? ?  }? ? }

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/540369.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/540369.shtml
英文地址,請注明出處:http://en.pswp.cn/news/540369.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android Framework中的Application Framework層介紹

Android的四層架構相比大家都很清楚&#xff0c;老生常談的說一下分別為&#xff1a; Linux2.6內核層&#xff0c;核心庫層&#xff0c;應用框架層&#xff0c;應用層。我今天重點介紹一下應用框架層Framework。 Framework層為我們開發應用程序提供了非常多的API&#xff0c;我…

[轉載] java注釋

參考鏈接&#xff1a; Java注釋 Java注釋 java中注釋有三種&#xff1a;這些都稱之為java doc標記&#xff0c;含義如下&#xff1a; java中注釋有三種&#xff1a; 單行注釋 //注釋的內容&#xff0c;多行注釋 /…注釋的內容…/&#xff0c;文檔注釋 /**…注釋的內容….*/。…

環路是怎樣形成的實例

環路是怎樣形成的一個由十多臺交換機組成的小型局域網&#xff0c;交換機大多是Cisco的中低端系列產品。某日突然出現問題&#xff1a;局域網內的主機之間相互ping時&#xff0c;都出現延時長、丟包現象&#xff0c;網絡應用奇慢無比。 觀察交換機設備&#xff0c;指示燈看不出…

[轉載] 《Python語言程序設計》課程筆記

參考鏈接&#xff1a; Python程式設計語言 文章目錄 第一部分 Python快速入門第1周 Python基本語法元素第2周 Python基本圖形繪制 第二部分 Python基礎語法第3周 基本數據類型3.1 數字類型及操作3.3 字符串類型及操作3.4 模塊2: time庫的使用 第4周 程序的控制結構4.1 程序的分…

ORACLE中創建如何創建表,并設置結構和默認值

使用select語句查看EMP表&#xff0c;根據COMM排序 默認情況下&#xff0c;空值會自動排列在尾部。 利用nulls last排序時將空值置底 利用nulls first排序時將空值置頂 例 創建一張出版社表 使用語句 create table 表名&#xff08;列名1 類型&#xff0c;列名2 類型&#xff0…

[轉載] C++靈魂所在之---多態的前世與今生

參考鏈接&#xff1a; Java是否支持goto 開頭先送大家一句話吧&#xff1a; 眾所周知&#xff0c;在20世紀80年代早期&#xff0c;C在貝爾實驗室誕生了&#xff0c;這是一門面向對象的語言&#xff0c;但它又不是全新的面向對象的語言&#xff0c;它是在傳統的語言…

Code Sinppet

如果你在使用VS 2005,如果你不能使用它的Code Snippet功能&#xff0c;如果你在實現抽象類override 方法時彈出&#xff1a;Code Snippet titled [Method Stub - Body] failed to load. Verify that refactoring snippets are recognized in the Code Snippet Manager and that…

暴風TV請來中國人工智能first lady馮雁教授任首席科學家

今日下午&#xff0c;暴風AI無屏電視發布會現場&#xff0c;暴風TV宣布邀請號稱“中國人工智能first lady”、于香港科技大學任教的馮雁教授&#xff0c;擔任暴風TV人工智能首席科學顧問。 馮雁教授于現場表示&#xff0c;選擇暴風TV合作的重要原因&#xff0c;一方面在于其個人…

[轉載] java 計算協方差_Java的深度:通過協方差暴露的API泄漏

參考鏈接&#xff1a; 關于Java中null的有趣事實 java 計算協方差 Java有時可能非常棘手&#xff0c;特別是在API設計中。 讓我們看一個非常有趣的展示柜。 jOOQ強烈地將API與實現分開。 所有API都在org.jooq包中&#xff0c;并且是公共的。 大多數實現是在org.jooq.impl包…

gulp之gulp.watch報錯

gulpfile.js如下&#xff1a; 問題&#xff1a; 第一次改動文件&#xff0c;監聽正常。再次改動&#xff0c;報錯&#xff0c;如下&#xff1a; 解決&#xff1a; 總結&#xff1a; 意思&#xff0c;gulpsequence這玩意兒返回的thunk只能執行一次 轉載于:https://www.cnblogs.c…

[轉載] mybatis

參考鏈接&#xff1a; 在Java中使用_(下劃線)作為變量名 mybatis第一天 1.mybatis概述和環境搭建 mybatis概述 mybatis環境搭建 1. 創建maven工程、添加開發依賴、創建數據庫和表&#xff1b; 2. 創建domain實體類和dao mybatis是一門java語言編寫持久層框架…

設置了li(float:right),里面的li反過來顯示 - 解決辦法

設置了li(float:right),里面的li反過來顯示 - 解決辦法 可以讓ul float:right ul里的li 依然float:left 本文轉自許琴 51CTO博客&#xff0c;原文鏈接&#xff1a;http://blog.51cto.com/xuqin/1127540&#xff0c;如需轉載請自行聯系原作者

[轉載] 純函數和函數柯里化

參考鏈接&#xff1a; 用示例編寫Java柯里化Currying函數 文章目錄 純函數什么是純函數純函數例子非純函數例子 函數柯里化函數柯里化簡單例子參數復用 純函數 什么是純函數 如果函數的調用參數相同&#xff0c;則永遠返回相同的結果。它不依賴于程序執行期間函數外部任何狀…

[轉載] scala

參考鏈接&#xff1a; 在Java的數字中使用下劃線 1 scala 底層是有一種隱式轉換機制&#xff0c;比如對String類型&#xff0c;底層會轉化Scala的StringOps類型 2 scala 的通用的化簡規則&#xff1a;調方法時候&#xff0c;方法的參數列表只有一個&#xff0c;則方法的&…

MySQL數據庫學習筆記

MySQL常用語法總結 一.創建Web數據庫 1.登陸到數據庫 mysql -h hostname -u username -p mysql -h hostname -u username -D dbname -p 2.創建數據庫 CREATE database dbname 3.使用數據庫 USE dbname 4.創建數據庫表 CREATE TABLE tablename (columns) 5.列的數據 create tabl…

[轉載] java實現四種常用排序算法

參考鏈接&#xff1a; 用Java排序 四種常用排序算法 ##注&#xff1a;從小到大排 ##冒泡排序## 特點&#xff1a;效率低&#xff0c;實現簡單 思想&#xff1a;每一趟將待排序序列中最大元素移到最后&#xff0c;剩下的為新的待排序序列&#xff0c;重復上述步驟直到排完所…

[轉載] Java復制對象與集合工具類

參考鏈接&#xff1a; Java中的類和對象 項目中經常需要將某個對象的屬性值復制給另一個對象&#xff0c;或者將一個集合復制到另一個集合。利用spring提供的BeanUtils&#xff0c;自己簡單封裝了一個工具類。 public class CopyUtils { /** * 復制集合 */ public static &l…

.NET深入學習筆記(4):深拷貝與淺拷貝(Deep Copy and Shallow Copy)

今天繼續利用準備WSE安全開發文章的空閑時間&#xff0c;完善《.NET深入學習筆記》系列&#xff08;基本都是.Net重要的知識點&#xff0c;我都做了詳細的總結&#xff0c;是什么、為什么、和怎么實現&#xff09;。想必很多人也接觸過這兩個概念。做過C的人對深淺拷貝的概念一…

VIM一般模式操作

2019獨角獸企業重金招聘Python工程師標準>>> vim介紹 vim和vi幾乎是一樣的&#xff0c;唯一的區別就是當編輯一個文本時&#xff0c;使用vi不會顯示顏色&#xff0c;而使用vim會顯示顏色。 vim有三個模式&#xff1a;一般模式&#xff0c;編輯模式&#xff0c;命令模…

[轉載] 解析Java的JNI編程中的對象引用與內存泄漏問題

參考鏈接&#xff1a; Java對象如何存儲在內存中 JNI&#xff0c;Java Native Interface&#xff0c;是 native code 的編程接口。JNI 使 Java 代碼程序可以與 native code 交互——在 Java 程序中調用 native code&#xff1b;在 native code 中嵌入 Java 虛擬機調用 Java 的…