sql mysql oracle中字符串接
將不同欄位獲得的資料串連在一起。每一種資料庫都有提供方法來達到這個目的:
MySQL: CONCAT()
Oracle: CONCAT(), ||
SQL Server: +
CONCAT() 的語法如下:
Mysql 中 CONCAT(字串1, 字串2, 字串3, ...): 將字串1、字串2、字串3,等字串連在一起。
注意,Oracle的CONCAT()只允許兩個參數;換言之,一次只能將兩個字串串連起來。
不過,在Oracle中,我們可以用'||來一次串連多個字串。
例子
-----------------------------------------
表名為Test
id path title ti
1 0 首頁 0
2 0,1 新聞 1
3 0,2 JAVA 2
4 0,3 JSP 3
5 0,2,3 業界動態 2
6 0,2,3 國內新聞 1
-----------------------------------------
例子1:
MySQL/Oracle:
SELECT CONCAT(id,path) FROM Test
WHERE title= ' 首頁';
結果:'01'
-----------------------------------------
例子2:
Oracle:
SELECT id|| ', ' || path FROM Geography
WHERE title= ' 首頁';
結果:'0,1'
-----------------------------------------
例子3:
SQL Server:
SELECT id + ', ' + path FROM Geography
WHERE title= ' 首頁';
結果:'0,1'
-----------------------------------------
例子4:
MySQL:
SELECT CONCAT(id,',',path) FROM Geography
WHERE title= ' 首頁';
結果:'0,1'
-----------------------------------------
這樣就很明顯的看出來其中的區別了!
2018年4月30日 星期一
SQL
啟動/停止 mySQL Database Engine
命令提示字元,輸入下列其中一個命令:
net start mysql
net stop mysql
---
[my memo]
---
SQL資料類型(SQL Data Type)
1. 數字類型(Numeric Types)
命令提示字元,輸入下列其中一個命令:
net start mysql
net stop mysql
---
[my memo]
---
SQL資料類型(SQL Data Type)
1. 數字類型(Numeric Types)
類型
|
型別
|
範圍
|
位元數
|
備註
|
精確數值
(整數)
|
bit
|
0、1、null
|
1 byte
|
字串值true和false可以轉換成bit值,即true會轉換成1;而false會轉換成0。
|
tinyint
|
0~28-1 (0~255)
|
1 byte
|
"F", "M"
| |
smallint
|
-215~215-1 (-32,768~32,767)
|
2 bytes
|
"男","女"
| |
int
(/integer)
|
-231~231-1 (-2,147,483,648~2,147,483,647)
|
4 bytes
| ||
bigint
|
-263~263-1
|
8 bytes
| ||
精確數值
(小數)
|
numeric[(p[,s])]
|
-1038+1~1038-1
|
5~17 bytes
|
|
decimal[(p[,s])]
|
-1038+1~1038-1
|
5~17 bytes
| ||
精確數值
(貨幣)
|
money
|
-263~263-1 小數4位
(-922,337,203,685,477.5808 到922,337,203,685,477.5807)
|
8 bytes
| |
smallmoney
|
-231~231-1 小數4位
(-214748.3648~214748.3647)
|
4 bytes
| ||
近似數值
(小數)
|
float[(n)]
|
–3.40E38~–1.18E-38、0、1.18E-38~3.40E38
|
n:1~24à4 byte
n:25~53à8 byte
|
|
real
|
–1.79E308~–2.23E-308、0、2.23E-308~1.79E308
|
4 bytes
|
同於 float(24)
|
※注意:
(1) 需要精確數值行為時請勿使用float和real這些資料類型,例如財務應用程式、牽涉到四捨五入的作業或者進行相等檢查作業時。
(2) 避免在 WHERE 子句的搜尋條件中使用 float 或 real 資料行,尤其是 = 與<> 運算子。最好將 float 和 real 資料行限制為 > 或 < 比較。
2. 文字類型(Character Types)
類型
|
型別
|
範圍
|
位元數
|
備註
|
非Unicode
|
char(size)
|
固定長度1~8000字元,區分全半型
|
1字元 1 bytes
|
例如:在char(5)之下,abc與abcde會以"abc空白空白"與"abcde”等方式儲存。
|
varchar(size)
|
變動長度1~8000字元,區分全半型
|
1字元 1 bytes
|
例如:在varchar(5)之下,abc與abcde會以"abc"與"abcde”等方式儲存。
| |
varchar(max)
|
1~231-1字元
|
0 ~ 2 GB
| ||
Unicode
|
nchar(size)
|
固定長度1~4000字元,不區分全半型,為Unicode編碼
|
1字元 2 bytes
| |
nvarchar(size)
|
變動長度1~4000字元,不區分全半型,為Unicode編碼
|
1字元 2 bytes
| ||
nvarchar(max)
|
1~231-1字元,為Unicode編碼
|
0 ~ 2 GB
|
※注意:
(1) 在未來的Microsoft SQL Server版本中,將移除ntext、text和image等資料類型。請避免在新的開發工作中使用這些資料類型,並修改目前在使用這些資料類型的應用程式,建護改用nvarchar(max)、varchar(max)和varbinary(max)。
3. 日期和時間類型(Date and Time Types)
類型
|
型別
|
範圍
|
位元數
|
備註
|
日期和
時間類型 |
datetime
|
1753/01/01 00:00:00.000 到9999/12/31 23:59:59.999
(精確度:0.00333秒) |
8 bytes
|
例如:
2008-11-27 08:08:08.888 |
smalldatetime
|
1900/01/01 00:00 到2079/06/06 23:59
(精確度:1分) |
4 bytes
|
例如:
2008-11-24 15:11 | |
datetime2(size)
|
0001/01/01 00:00:00.0000000 到9999/12/31 23:59:59.9999999
(精確度:n:0~7,10-n秒) |
6~8 bytes
|
格式:
YYYY-MM-DD HH:MI:SS.NNNNNNN | |
date
|
0001/01/01 ~ 9999/12/31 (精確度:1天)
|
3 bytes
|
格式:YYYY-MM-DD
| |
time(size)
|
00:00:00.0000000到23:59:59.9999999
(精確度:n:0~7,10-n秒) |
3~5 bytes
|
格式:HH:MI:SS.NNNNNNN
| |
datetimeoffset(size)
|
0001/01/01 00:00:00.0000000 ~ 9999/12/31 23:59:59.9999999
(以UTC為單位) |
8~10 bytes
|
格式:
YYYY-MM-DD HH:MI:SS.NNNNNNN+|-HH:MI |
4. 二進位資料類型(Binary Types)
類型
|
型別
|
範圍
|
位元數
|
備註
|
二進位
資料 |
binary(size)
|
固定長度1~8000 bytes
|
固定長度 8000 bytes,不足自動補上 0x00
|
使用於「資料行資料項目的大小不一致」時。
|
varbinary(size)
|
變動長度1~8000 bytes
|
變動長度
|
使用於「資料行資料項目的大小變化相當大」時。
| |
varbinary(max)
|
1~231-1 bytes
|
0 ~ 2 GB
|
使用於「資料行資料項目超過8,000位元組」。
| |
地理位置空間資料
|
geometry
|
利用CLR實作資料類型,適用平面座標系統的資料
| ||
geography
|
利用CLR實作資料類型,適用經緯度座標系統的資料
|
※注意:
(1) 在儲存如安全性識別碼(SID)、全域唯一識別碼(GUID)或可以儲存成十六進位縮寫的複數時,就可以使用「二進位資料」。
(2) 當資料定義或變數宣告陳述式中沒有指定size時,預設為1。當size不是利用CAST函數來指定時,預設為30。
5. 其他類型(Other Types)
型別
|
範圍
|
位元數
|
備註
|
xml
|
xml資料
|
0 ~ 2 GB
|
可以使用xml資料類型方法(如:query()、value()、exist()、modify()、nodes())來查詢儲存在xml類型之變數或資料行中的XML執行個體。
|
uniqueidentifier
|
全域唯一識別碼(GUID)
|
16 bytes
|
|
timestamp
|
資料庫內自動產生唯一的二進位值,用於指出資料庫中發生資料修改的「相對順序」。
|
8 bytes
| |
hierarchyid
|
利用CLR實作資料類型,用於管理具有階層式結構的資料及資料表。
|
※注意:
(1) 請勿在「索引鍵」中使用timestamp資料行 (尤其是主索引鍵),因為每次修改資料列時,timestamp值就會變更。
(2) 若要記錄資料表中發生資料修改的時間,請使用datetime2或smalldatetime資料類型來記錄事件和觸發程序,以便在發生修改時,自動更新這些值。
(3) timestamp是 rowversion資料類型的同義字。在 DDL 陳述式中,請盡可能利用rowversion來取代timestamp。
(4) timestamp語法已被取代。未來的Microsoft SQL Server版本將移除這項功能。請避免在新的開發工作中使用這項功能,並修改目前使用這項功能的應用程式。
JAVA 資料型態 & printf 格式2
import java.util.Date;
/**
* 使用printf輸出
*/
/**關鍵技術點
* 使用java.io.PrintStream的printf方法實現C風格的輸出
* printf 方法的第一個參數為輸出的格式,第二個參數是可變長的,表示待輸出的數據對象
*/
public class Printf {
public static void main(String[] args) {
/*** 輸出字符串 ***/
// %s表示輸出字符串,也就是將後面的字符串替換模式中的%s
System.out.printf("%s", new Integer(1212));
// %n表示換行
System.out.printf("%s%n", "end line");
// 還可以支持多個參數
System.out.printf("%s = %s%n", "Name", "Zhangsan");
// %S將字符串以大寫形式輸出
System.out.printf("%S = %s%n", "Name", "Zhangsan");
// 支持多個參數時,可以在%s之間插入變量編號,1$表示第一個字符串,3$表示第3個字符串
System.out.printf("%1$s = %3$s %2$s%n", "Name", "san", "Zhang");
/*** 輸出boolean類型 ***/
System.out.printf("true = %b; false = ", true);
System.out.printf("%b%n", false);
/*** 輸出整數類型***/
Integer iObj = 342;
// %d表示將整數格式化為10進制整數
System.out.printf("%d; %d; %d%n", -500, 2343L, iObj);
// %o表示將整數格式化為8進制整數
System.out.printf("%o; %o; %o%n", -500, 2343L, iObj);
// %x表示將整數格式化為16進制整數
System.out.printf("%x; %x; %x%n", -500, 2343L, iObj);
// %X表示將整數格式化為16進制整數,並且字母變成大寫形式
System.out.printf("%X; %X; %X%n", -500, 2343L, iObj);
/*** 輸出浮點類型***/
Double dObj = 45.6d;
// %e表示以科學技術法輸出浮點數
System.out.printf("%e; %e; %e%n", -756.403f, 7464.232641d, dObj);
// %E表示以科學技術法輸出浮點數,並且為大寫形式
System.out.printf("%E; %E; %E%n", -756.403f, 7464.232641d, dObj);
// %f表示以十進制格式化輸出浮點數
System.out.printf("%f; %f; %f%n", -756.403f, 7464.232641d, dObj);
// 還可以限制小數點後的位數
System.out.printf("%.1f; %.3f; %f%n", -756.403f, 7464.232641d, dObj);
/*** 輸出日期類型***/
// %t表示格式化日期時間類型,%T是時間日期的大寫形式,在%t之後用特定的字母表示不同的輸出格式
Date date = new Date();
long dataL = date.getTime();
// 格式化年月日
// %t之後用y表示輸出日期的年份(2位數的年,如99)
// %t之後用m表示輸出日期的月份,%t之後用d表示輸出日期的日號
System.out.printf("%1$ty-%1$tm-%1$td; %2$ty-%2$tm-%2$td%n", date, dataL);
// %t之後用Y表示輸出日期的年份(4位數的年),
// %t之後用B表示輸出日期的月份的完整名, %t之後用b表示輸出日期的月份的簡稱
System.out.printf("%1$tY-%1$tB-%1$td; %2$tY-%2$tb-%2$td%n", date, dataL);
// 以下是常見的日期組合
// %t之後用D表示以 "%tm/%td/%ty"格式化日期
System.out.printf("%1$tD%n", date);
//%t之後用F表示以"%tY-%tm-%td"格式化日期
System.out.printf("%1$tF%n", date);
/*** 輸出時間類型***/
// 輸出時分秒
// %t之後用H表示輸出時間的時(24進制),%t之後用I表示輸出時間的時(12進制),
// %t之後用M表示輸出時間的分,%t之後用S表示輸出時間的秒
System.out.printf("%1$tH:%1$tM:%1$tS; %2$tI:%2$tM:%2$tS%n", date, dataL);
// %t之後用L表示輸出時間的秒中的毫秒
System.out.printf("%1$tH:%1$tM:%1$tS %1$tL%n", date);
// %t之後p表示輸出時間的上午或下午信息
System.out.printf("%1$tH:%1$tM:%1$tS %1$tL %1$tp%n", date);
// 以下是常見的時間組合
// %t之後用R表示以"%tH:%tM"格式化時間
System.out.printf("%1$tR%n", date);
// %t之後用T表示以"%tH:%tM:%tS"格式化時間
System.out.printf("%1$tT%n", date);
// %t之後用r表示以"%tI:%tM:%tS %Tp"格式化時間
System.out.printf("%1$tr%n", date);
/*** 輸出星期***/
// %t之後用A表示得到星期幾的全稱
System.out.printf("%1$tF %1$tA%n", date);
// %t之後用a表示得到星期幾的簡稱
System.out.printf("%1$tF %1$ta%n", date);
// 輸出時間日期的完整信息
System.out.printf("%1$tc%n", date);
}
}
/**
*printf方法中,格式為"%s"表示以字符串的形式輸出第二個可變長參數的第一個參數值;
*格式為"%n"表示換行;格式為"%S"表示將字符串以大寫形式輸出;在"%s"之間用"n$"表示
*輸出可變長參數的第n個參數值.格式為"%b"表示以布爾值的形式輸出第二個可變長參數
*的第一個參數值.
*/
/**
* 格式為"%d"表示以十進制整數形式輸出;"%o"表示以八進制形式輸出;"%x"表示以十六進制
* 輸出;"%X"表示以十六進制輸出,並且將字母(A、B、C、D、E、F)換成大寫.格式為"%e"表
* 以科學計數法輸出浮點數;格式為"%E"表示以科學計數法輸出浮點數,而且將e大寫;格式為
* "%f"表示以十進制浮點數輸出,在"%f"之間加上".n"表示輸出時保留小數點後面n位.
*/
/**
* 格式為"%t"表示輸出時間日期類型."%t"之後用y表示輸出日期的二位數的年份(如99)、用m
* 表示輸出日期的月份,用d表示輸出日期的日號;"%t"之後用Y表示輸出日期的四位數的年份
* (如1999)、用B表示輸出日期的月份的完整名,用b表示輸出日期的月份的簡稱."%t"之後用D
* 表示以"%tm/%td/%ty"的格式輸出日期、用F表示以"%tY-%tm-%td"的格式輸出日期.
*/
/**
* "%t"之後用H表示輸出時間的時(24進制),用I表示輸出時間的時(12進制),用M表示輸出時間
* 分,用S表示輸出時間的秒,用L表示輸出時間的秒中的毫秒數、用 p 表示輸出時間的是上午還是
* 下午."%t"之後用R表示以"%tH:%tM"的格式輸出時間、用T表示以"%tH:%tM:%tS"的格式輸出
* 時間、用r表示以"%tI:%tM:%tS %Tp"的格式輸出時間.
*/
/**
* "%t"之後用A表示輸出日期的全稱,用a表示輸出日期的星期簡稱.
*/
中文亂碼解決方法:【Eclipse】環境編碼設定改 UTF-8 ; 或用 javac -encoding utf-8
【Eclipse】中文亂碼解決方法:環境編碼設定改 UTF-8
有時候打開一些別人的專案,或是以前所寫的程式,會發現怎麼中文都變成亂碼,不僅無法辨識,也無法編譯,Eclipse 的程式檔的圖示上,會有一個紅色的小叉叉。這是由於檔案的編碼和開發工具的環境編碼不一致的緣故。
解決方法很簡單,將開發工具的環境編碼也改為 UTF-8 就行了。
Step 1. 首先選擇上方選單中的「Window」->「Preferences」,開啟設定視窗。
Step 2. 選左邊樹狀結構中的「General」->「Workspace」。
Step 3. 在右邊有一個「Text file encoding」,將 Default (MS950) 改成「Other:」,並選擇「UTF-8」。
Step 4. 之後按下「Apply」就設定完成。
--
JAVA] 在編譯某個小練習時噴了這個錯誤出來: unmappable character for encoding
原來是因為Notepad++預設是採UTF8編碼,
而在JAVA編譯程式時,則是採用作業系統預設的編碼(也就是MS950)
(註: 在Windows環境下,預設的編碼是MS950,也就是我們常看到的ANSI編碼)
所以當要被編譯的檔案是使用UTF8編碼,在有中文字的地方就會出錯
所以,針對這個問題的解決辦法:
1. 在編譯時指定採用的編碼為UTF8,EX: javac -encoding utf-8 example.java
printf 格式1
printf 格式
轉 換 符
|
說 明
|
示 例
|
%s
|
字符串類型
|
"mingrisoft"
|
%c
|
字符類型
|
'm'
|
%b
|
布爾類型
|
true
|
%d
|
整數類型(十進制)
|
99
|
%x
|
整數類型(十六進制)
|
FF
|
%o
|
整數類型(八進制)
|
77
|
%f
|
浮點類型
|
99.99
|
%a
|
十六進制浮點類型
|
FF.35AE
|
%e
|
指數類型
|
9.38e+5
|
%g
|
通用浮點類型(f和e類型中較短的)
| |
%h
|
散列碼
| |
%%
|
百分比類型
|
%
|
%n
|
換行符
| |
%tx
|
日期與時間類型(x代表不同的日期與時間轉換符
|
表 3.1 常用格式控制字元
控制字元 | 作用 |
---|---|
\\ | 反斜線 |
\' | 單引號' |
\" | 雙引號" |
\uxxxx | 以 16 進位數指定 Unicode 字元輸出 |
\xxx | 以 8 進位數指定 Unicode 字元輸出 |
\b | 倒退一個字元 |
\f | 換頁 |
\n | 換行 |
\r | 游標移至行首 |
\t | 跳格(一個Tab鍵) |
- public static void main(String[] args) {
- String str=null;
- str=String.format("Hi,%s", "王力");
- System.out.println(str);
- str=String.format("Hi,%s:%s.%s", "王南","王力","王張");
- System.out.println(str);
- System.out.printf("字母a的大寫是:%c %n", 'A');
- System.out.printf("3>7的結果是:%b %n", 3>7);
- System.out.printf("100的一半是:%d %n", 100/2);
- System.out.printf("100的16進制數是:%x %n", 100);
- System.out.printf("100的8進制數是:%o %n", 100);
- System.out.printf("50元的書打8.5折扣是:%f 元%n", 50*0.85);
- System.out.printf("上面價格的16進制數是:%a %n", 50*0.85);
- System.out.printf("上面價格的指數表示:%e %n", 50*0.85);
- System.out.printf("上面價格的指數和浮點數結果的長度較短的是:%g %n", 50*0.85);
- System.out.printf("上面的折扣是%d%% %n", 85);
- System.out.printf("字母A的散列碼是:%h %n", 'A');
- }
- Hi,王力
- Hi,王南:王力.王張
- 字母a的大寫是:A
- 3>7的結果是:false
- 100的一半是:50
- 100的16進制數是:64
- 100的8進制數是:144
- 50元的書打8.5折扣是:42.500000 元
- 上面價格的16進制數是:0x1.54p5
- 上面價格的指數表示:4.250000e+01
- 上面價格的指數和浮點數結果的長度較短的是:42.5000
- 上面的折扣是85%
- 字母A的散列碼是:41
標 志
|
說 明
|
示 例
|
結 果
|
+
|
為正數或者負數添加符號
|
("%+d",15)
|
+15
|
−
|
左對齊
|
("%-5d",15)
|
|15 |
|
0
|
數字前面補0
|
("%04d", 99)
|
0099
|
空格
|
在整數之前添加指定數量的空格
|
("% 4d", 99)
|
| 99|
|
,
|
以“,”對數字分組
|
("%,f", 9999.99)
|
9,999.990000
|
(
|
使用括號包含負數
|
("%(f", -99.99)
|
(99.990000)
|
#
|
如果是浮點數則包含小數點,如果是16進制或8進制則添加0x或0
|
("%#x", 99)
("%#o", 99)
|
0x63
0143
|
<
|
格式化前一個轉換符所描述的參數
|
("%f和%<3.2f", 99.45)
|
99.450000和99.45
|
$
|
被格式化的參數索引
|
("%1$d,%2$s", 99,"abc")
|
99,abc
|
- public static void main(String[] args) {
- String str=null;
- //$使用
- str=String.format("格式參數$的使用:%1$d,%2$s", 99,"abc");
- System.out.println(str);
- //+使用
- System.out.printf("顯示正負數的符號:%+d與%d%n", 99,-99);
- //補O使用
- System.out.printf("最牛的編號是:%03d%n", 7);
- //空格使用
- System.out.printf("Tab鍵的效果是:% 8d%n", 7);
- //.使用
- System.out.printf("整數分組的效果是:%,d%n", 9989997);
- //空格和小數點後面個數
- System.out.printf("一本書的價格是:% 50.5f元%n", 49.8);
- }
輸出結果
- 格式參數$的使用:99,abc
- 顯示正負數的符號:+99與-99
- 最牛的編號是:007
- Tab鍵的效果是: 7
- 整數分組的效果是:9,989,997
- 一本書的價格是: 49.80000元
日期和事件字符串格式化
在程序界面中經常需要顯示時間和日期,但是其顯示的 格式經常不盡人意,需要編寫大量的代碼經過各種算法才得到理想的日期與時間格式。字符串格式中還有%tx轉換符沒有詳細介紹,它是專門用來格式化日期和時 間的。%tx轉換符中的x代表另外的處理日期和時間格式的轉換符,它們的組合能夠將日期和時間格式化成多種格式。
常見日期和時間組合的格式,如圖所示。
轉 換 符
|
說 明
|
示 例
|
c
|
包括全部日期和時間信息
|
星期六 十月 27 14:21:20 CST 2007
|
F
|
“年-月-日”格式
|
2007-10-27
|
D
|
“月/日/年”格式
|
10/27/07
|
r
|
“HH:MM:SS PM”格式(12時制)
|
02:25:51 下午
|
T
|
“HH:MM:SS”格式(24時制)
|
14:28:16
|
R
|
“HH:MM”格式(24時制)
|
14:28
|
- public static void main(String[] args) {
- Date date=new Date();
- //c的使用
- System.out.printf("全部日期和時間信息:%tc%n",date);
- //f的使用
- System.out.printf("年-月-日格式:%tF%n",date);
- //d的使用
- System.out.printf("月/日/年格式:%tD%n",date);
- //r的使用
- System.out.printf("HH:MM:SS PM格式(12時制):%tr%n",date);
- //t的使用
- System.out.printf("HH:MM:SS格式(24時制):%tT%n",date);
- //R的使用
- System.out.printf("HH:MM格式(24時制):%tR",date);
- }
輸出結果
- 全部日期和時間信息:星期一 九月 10 10:43:36 CST 2012
- 年-月-日格式:2012-09-10
- 月/日/年格式:09/10/12
- HH:MM:SS PM格式(12時制):10:43:36 上午
- HH:MM:SS格式(24時制):10:43:36
- HH:MM格式(24時制):10:43
- public static void main(String[] args) {
- Date date=new Date();
- //b的使用,月份簡稱
- String str=String.format(Locale.US,"英文月份簡稱:%tb",date);
- System.out.println(str);
- System.out.printf("本地月份簡稱:%tb%n",date);
- //B的使用,月份全稱
- str=String.format(Locale.US,"英文月份全稱:%tB",date);
- System.out.println(str);
- System.out.printf("本地月份全稱:%tB%n",date);
- //a的使用,星期簡稱
- str=String.format(Locale.US,"英文星期的簡稱:%ta",date);
- System.out.println(str);
- //A的使用,星期全稱
- System.out.printf("本地星期的簡稱:%tA%n",date);
- //C的使用,年前兩位
- System.out.printf("年的前兩位數字(不足兩位前面補0):%tC%n",date);
- //y的使用,年後兩位
- System.out.printf("年的後兩位數字(不足兩位前面補0):%ty%n",date);
- //j的使用,一年的天數
- System.out.printf("一年中的天數(即年的第幾天):%tj%n",date);
- //m的使用,月份
- System.out.printf("兩位數字的月份(不足兩位前面補0):%tm%n",date);
- //d的使用,日(二位,不夠補零)
- System.out.printf("兩位數字的日(不足兩位前面補0):%td%n",date);
- //e的使用,日(一位不補零)
- System.out.printf("月份的日(前面不補0):%te",date);
- }
- 英文月份簡稱:Sep
- 本地月份簡稱:九月
- 英文月份全稱:September
- 本地月份全稱:九月
- 英文星期的簡稱:Mon
- 本地星期的簡稱:星期一
- 年的前兩位數字(不足兩位前面補0):20
- 年的後兩位數字(不足兩位前面補0):12
- 一年中的天數(即年的第幾天):254
- 兩位數字的月份(不足兩位前面補0):09
- 兩位數字的日(不足兩位前面補0):10
- 月份的日(前面不補0):10
轉 換 符
|
說 明
|
示 例
|
H
|
2位數字24時制的小時(不足2位前面補0)
|
15
|
I
|
2位數字12時制的小時(不足2位前面補0)
|
03
|
k
|
2位數字24時制的小時(前面不補0)
|
15
|
l
|
2位數字12時制的小時(前面不補0)
|
3
|
M
|
2位數字的分鐘(不足2位前面補0)
|
03
|
S
|
2位數字的秒(不足2位前面補0)
|
09
|
L
|
3位數字的毫秒(不足3位前面補0)
|
015
|
N
|
9位數字的毫秒數(不足9位前面補0)
|
562000000
|
p
|
小寫字母的上午或下午標記
|
中:下午
英:pm
|
z
|
相對於GMT的RFC822時區的偏移量
|
+0800
|
Z
|
時區縮寫字符串
|
CST
|
s
|
1970-1-1 00:00:00 到現在所經過的秒數
|
1193468128
|
Q
|
1970-1-1 00:00:00 到現在所經過的毫秒數
|
1193468128984
|
測試代碼
- public static void main(String[] args) {
- Date date = new Date();
- //H的使用
- System.out.printf("2位數字24時制的小時(不足2位前面補0):%tH%n", date);
- //I的使用
- System.out.printf("2位數字12時制的小時(不足2位前面補0):%tI%n", date);
- //k的使用
- System.out.printf("2位數字24時制的小時(前面不補0):%tk%n", date);
- //l的使用
- System.out.printf("2位數字12時制的小時(前面不補0):%tl%n", date);
- //M的使用
- System.out.printf("2位數字的分鐘(不足2位前面補0):%tM%n", date);
- //S的使用
- System.out.printf("2位數字的秒(不足2位前面補0):%tS%n", date);
- //L的使用
- System.out.printf("3位數字的毫秒(不足3位前面補0):%tL%n", date);
- //N的使用
- System.out.printf("9位數字的毫秒數(不足9位前面補0):%tN%n", date);
- //p的使用
- String str = String.format(Locale.US, "小寫字母的上午或下午標記(英):%tp", date);
- System.out.println(str);
- System.out.printf("小寫字母的上午或下午標記(中):%tp%n", date);
- //z的使用
- System.out.printf("相對於GMT的RFC822時區的偏移量:%tz%n", date);
- //Z的使用
- System.out.printf("時區縮寫字符串:%tZ%n", date);
- //s的使用
- System.out.printf("1970-1-1 00:00:00 到現在所經過的秒數:%ts%n", date);
- //Q的使用
- System.out.printf("1970-1-1 00:00:00 到現在所經過的毫秒數:%tQ%n", date);
- }
輸出結果
- 2位數字24時制的小時(不足2位前面補0):11
- 2位數字12時制的小時(不足2位前面補0):11
- 2位數字24時制的小時(前面不補0):11
- 2位數字12時制的小時(前面不補0):11
- 2位數字的分鐘(不足2位前面補0):03
- 2位數字的秒(不足2位前面補0):52
- 3位數字的毫秒(不足3位前面補0):773
- 9位數字的毫秒數(不足9位前面補0):773000000
- 小寫字母的上午或下午標記(英):am
- 小寫字母的上午或下午標記(中):上午
- 相對於GMT的RFC822時區的偏移量:+0800
- 時區縮寫字符串:CST
- 1970-1-1 00:00:00 到現在所經過的秒數:1347246232
- 1970-1-1 00:00:00 到現在所經過的毫秒數:1347246232773
訂閱:
文章 (Atom)
Regular Expression 正則表示式做字串比對
Regular Expression 中文翻成正則表示式 英文簡寫為 Regex 或 RegExp RegExp 是用來比對字串是不是有符合正確的格式 語法很簡單而且大部分語言都有支援它 使用時機 譬如說你需要在程式內請使用者輸入生日 你規定的格式 1996-08...
-
【Eclipse】中文亂碼解決方法:環境編碼設定改 UTF-8 有時候打開一些別人的專案,或是以前所寫的程式,會發現怎麼中文都變成亂碼,不僅無法辨識,也無法編譯,Eclipse 的程式檔的圖示上,會有一個紅色的小叉叉。 這是由於檔案的編碼和開發工具的環境編碼不一致...
-
1. 新增帳號 : CREATE USER 使用者名稱 IDENTIFIED BY 密碼; 2. 權限設定 : GRANT 權限 ON 資料庫物件 TO 使用者名稱; GRANT 角色 TO ...
-
Android 直接連MySQL資料庫 2015/04/20 來源:CSDN博客 在Android平台下,連接電腦伺服器的MySQL、PostgreSQL、Oracle、Sybase、Microsoft SQLServer等資料庫管理系統DBMS(databasemanage...