Java SE学习之printf 日期转换符
本文是学习网络上的文章时的总结,感谢大家无私的分享。
System.out.printf()方法能够对日期做处理输出。
相应列表
转换符 | 类型 | 举例 |
c | 完整的日期和时间 | Mon Feb 09 18:05:11 PST 2004 |
F | ISO 8061日期 | 2004-02-09 |
D | 美国格式的日期 | 02/09/2004 |
T | 24小时时间 | 18:03:23 |
r | 12小时时间 | 05:03:23 pm |
R | 24小时时间没有秒 | 18:05 |
Y | 4位数字的年(前面补0) | 2004 |
y | 年的后两位数字(前面补0) | 04 |
C | 年的前两位数字(前面补0) | 20 |
B | 月的完整拼写 | February |
b或h | 月的缩写 | Feb |
m | 两位数字的月(前面补0) | 02 |
d | 两位数字的日(前面补0) | 09 |
e | 两位数字的月(前面不补0) | 9 |
A | 星期几的完整拼写 | Monday |
a | 星期几的缩写 | Mon |
j | 三位数的年中的日子(前面补0),在001到366之间 | 069 |
H | 两位数字的小时(前面补0)。在0到23之间 | 18 |
k | 两位数字的小时(前面不补0)在0到23之间 | 8 |
I(大写的i) | 两位数字的小时(前面补0)。在0到12之间 | 06 |
l(小写的L) | 两位数字的小时(前面不补0),在0到12之间 | 6 |
M | 两位数字的分钟(前面补0) | 05 |
S | 两位数字的秒(前面补0) | 19 |
L | 三位数字的毫秒(前面补0) | 047 |
N | 九位数字的毫微秒(前面补0) | 047000000 |
P | 上午或者下午的大写标志 | PM |
p | 上午或者下午的小写标志 | pm |
z | 从GMT起。RFC822数字移位 | -0800 |
Z | 时区 | PST |
s | 从格林威治时间1970-01-01 00:00:00起的秒数 | 107884319 |
Q | 从格林威治时间1970-01-01 00:00:01起的毫秒数 | 107884319047 |
測试代码
package SE; import java.util.Date; /** * * <p> * Description: 本实例是为了学习printf对日期类型的格式化输出 * </p> * @author zhangjunshuai * @version 1.0 * Create Date: 2014-10-16 下午6:12:50 * Project Name: Java7Thread * * <pre> * Modification History: * Date Author Version Description * ----------------------------------------------------------------------------------------------------------- * LastChange: $Date:: $ $Author: $ $Rev: $ * </pre> * */ public class PrintfDate { /** * <p> * </p> * @author zhangjunshuai * @date 2014-10-16 下午6:12:46 * @param args */ public static void main(String[] args) { //printf方法能够打印时间格式。以t開始,以表中人以字母结束的两个字母格式 System.out.printf("%tc\n",new Date()); System.out.printf("%tF\n",new Date()); System.out.printf("%tD\n",new Date()); System.out.printf("%tT\n",new Date()); System.out.printf("%tr\n",new Date()); System.out.printf("%tR\n",new Date()); System.out.printf("%tY\n",new Date()); System.out.printf("%ty\n",new Date()); System.out.printf("%tC\n",new Date()); System.out.printf("%tb\n",new Date()); System.out.printf("%tm\n",new Date()); System.out.printf("%td\n",new Date()); System.out.printf("%te\n",new Date()); System.out.printf("%tA\n",new Date()); System.out.printf("%ta\n",new Date()); System.out.printf("%tj\n",new Date()); System.out.printf("%tH\n",new Date()); System.out.printf("%tk\n",new Date()); System.out.printf("%tI\n",new Date()); System.out.printf("%tl\n",new Date()); System.out.printf("%tM\n",new Date()); System.out.printf("%tS\n",new Date()); System.out.printf("%tL\n",new Date()); System.out.printf("%tN\n",new Date()); System.out.printf("%tp\n",new Date()); //System.out.printf("%tP\n",new Date());//此方法报错 应该和时区有关系 System.out.printf("%tz\n",new Date()); System.out.printf("%tZ\n",new Date()); System.out.printf("%ts\n",new Date()); System.out.printf("%tQ\n",new Date()); } }结果:
从上表能够看出。某些个事仅仅给出指定日期的部分信息。假设须要多次对日期操作才干实现一部分操作的目的就太笨拙了。为此能够採用一个格式化字符串之处被格式化的參数索引。
索引必须紧跟在%后面,以$终止。 索引从1開始 ,而非0。
System.out.printf("%1$s %2$tB %2$te, %2$tY\n", "Due date:", new Date());//%之后的2表示的是第二个參数。此处是指的是new Date()
也能够选择使用<标志。它指示前面格式说明中的參数将被再次使用。
System.out.printf("%s %tB %<te, %<tY", "Due date:", new Date());//选择使用<标志,它指示前面格式说明中的參数将被再次使用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架