JAVAKotlinAndrod使用String.format()格式化日期
- 其他
- 2025-09-01 15:15:02

在以前的开发中,日期格式化一直使用的是SimpleDateFormat进行格式化。今天发现String.format也可以格式化。当 然,两种方式的优劣没有进行深入分析。
val date = Date() //月,日,星期,AM/PM //Fue 1 (Sat) pm val fullDate = String.format("%tb %te일 (%ta) %tp", date, date, date, date) println(fullDate) //24小时制 17:02 var format = "%tH:%tM" println(String.format("full 24 = $format", date, date)) //Android 系统是否是24小时格式还是12小时格式 // if (!DateFormat.is24HourFormat(this)) { //12小时制 05:02 5:02 format = "%tI:%tM %tl:%tM " // } val time = String.format(format, date, date, date, date) println(time) 日期格式化 (2018/5/13 周日 中文环境下测试) 转换符 说明 结果 %tb 指定语言环境下的月份简称 五月 %tB 指定语言环境下的月份全称 五月 %ta 指定语言环境下周几的简称 星期日 %tA 指定语言环境下周几的全称 星期日 %ty 2位数的年份 18 %tY 4位数年份 2018 %tm 月份 05 %te 一个月中的某一天(1~31) 13 %td 一个月中的某一天(01~31) 13 %tj 一年中第几天 133时间格式化 (15:03:15.923 中文环境下测试) 转换符 说明 结果 %tH 小时(00~23) 15 %tI 小时(01~12) 03 %tk 小时(0~23) 15 %tl 小时(1~12) 3 %tM 分钟(00~59) 35 %tS 秒(00~59) 55 %tL 毫秒(000~999) 923 %tN 9位数微妙(000000000~999999999) 923000000 %tp 当前语言环境下上午/下午 下午 %tz 时区 +0800 %tZ 时区 CST %ts 从1970-01-01 00:00:00 到现在的秒 1526196955 %tQ 从1970-01-01 00:00:00 到现在的毫秒 1526196955923日期+时间 (2018/5/13 15:44:21 中文环境) 转换符 说明 结果 %tF 年-月-日 2018-05-13 %tD 月/日/年 05/13/18 %tc 全部时间日期 星期日 五月 13 15:44:21 CST 2018 %tr 时分秒 PM 03:44:21 下午 %tT 时分秒 15:44:21 %tR 时分 15:44 private fun dateFormat() { val date: Date = Date() //c的使用 System.out.printf("全部日期和时间信息:%tc%n", date) //f的使用 java.lang.System.out.printf("年-月-日格式:%tF%n", date) //d的使用 java.lang.System.out.printf("月/日/年格式:%tD%n", date) //r的使用 java.lang.System.out.printf("HH:MM:SS PM格式(12时制):%tr%n", date) //t的使用 java.lang.System.out.printf("HH:MM:SS格式(24时制):%tT%n", date) //R的使用 java.lang.System.out.printf("HH:MM格式(24时制):%tR", date) } private fun dateTimeFormat() { val date: Date = Date() //b的使用,月份简称 var str: String? = String.format(Locale.US, "英文月份简称:%tb", date) println(str) java.lang.System.out.printf("本地月份简称:%tb%n", date) //B的使用,月份全称 str = String.format(Locale.US, "英文月份全称:%tB", date) println(str) java.lang.System.out.printf("本地月份全称:%tB%n", date) //a的使用,星期简称 str = String.format(Locale.US, "英文星期的简称:%ta", date) println(str) //A的使用,星期全称 java.lang.System.out.printf("本地星期的简称:%tA%n", date) //C的使用,年前两位 java.lang.System.out.printf("年的前两位数字(不足两位前面补0):%tC%n", date) //y的使用,年后两位 java.lang.System.out.printf("年的后两位数字(不足两位前面补0):%ty%n", date) //j的使用,一年的天数 java.lang.System.out.printf("一年中的天数(即年的第几天):%tj%n", date) //m的使用,月份 java.lang.System.out.printf("两位数字的月份(不足两位前面补0):%tm%n", date) //d的使用,日(二位,不够补零) java.lang.System.out.printf("两位数字的日(不足两位前面补0):%td%n", date) //e的使用,日(一位不补零) java.lang.System.out.printf("月份的日(前面不补0):%te", date) }结果:英文系统:
全部日期和时间信息:Sat Feb 01 17:24:08 GMT+08:00 2025 年-月-日格式:2025-02-01 月/日/年格式:02/01/25 HH:MM:SS PM格式(12时制):05:24:08 PM HH:MM:SS格式(24时制):17:24:08 HH:MM格式(24时制):17:24英文月份简称:Feb 本地月份简称:Feb 英文月份全称:February 本地月份全称:February 英文星期的简称:Sat 本地星期的简称:Saturday 年的前两位数字(不足两位前面补0):20 年的后两位数字(不足两位前面补0):25 一年中的天数(即年的第几天):032 两位数字的月份(不足两位前面补0):02 两位数字的日(不足两位前面补0):01 月份的日(前面不补0):1Feb 1일 (Sat) pm full 24 = 17:24 05:24 5:24韩文系统语言:
I 全部日期和时间信息:화 2월 18 17:27:22 GMT+08:00 2025 年-月-日格式:2025-02-18 月/日/年格式:02/18/25 HH:MM:SS PM格式(12时制):05:27:22 오후 HH:MM:SS格式(24时制):17:27:22 HH:MM格式(24时制):17:27英文月份简称:Feb 本地月份简称:2월 英文月份全称:February 本地月份全称:2월 英文星期的简称:Tue 本地星期的简称:화요일 年的前两位数字(不足两位前面补0):20 年的后两位数字(不足两位前面补0):25 一年中的天数(即年的第几天):049 两位数字的月份(不足两位前面补0):02 两位数字的日(不足两位前面补0):18 月份的日(前面不补0):182월 18일 (화) 오후 full 24 = 17:27 05:27 5:27JAVAKotlinAndrod使用String.format()格式化日期由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“JAVAKotlinAndrod使用String.format()格式化日期”
上一篇
【C++】string
下一篇
平板作为电脑拓展屏