关于String类的format()方法对日期、时间的格式化

一、格式化日期

转换字符:

'B' 特定于语言环境的月份全称,例如 "January""February"
'b' 特定于语言环境的月份简称,例如 "Jan""Feb"
'h' 'b' 相同。
'A' 特定于语言环境的星期几全称,例如 "Sunday""Monday"
'a' 特定于语言环境的星期几简称,例如 "Sun""Mon"
'C' 除以 100 的四位数表示的年份,被格式化为必要时带前导零的两位数,即 00 - 99
'Y' 年份,被格式化为必要时带前导零的四位数(至少),例如,0092 等于格里高利历的 92 CE。
'y' 年份的最后两位数,被格式化为必要时带前导零的两位数,即 00 - 99
'j' 一年中的天数,被格式化为必要时带前导零的三位数,例如,对于格里高利历是 001 - 366
'm' 月份,被格式化为必要时带前导零的两位数,即 01 - 13
'd' 一个月中的天数,被格式化为必要时带前导零两位数,即 01 - 31
'e' 一个月中的天数,被格式化为两位数,即 1 - 31

 

代码:

import java.util.Date;
import java.util.Locale;
public class FormatDateDemo {
    public static void main(String[] args) {
        Date date = new Date();
        System.out.println("默认日期格式:" + date);
        System.out.println("指定语言环境的星期简称:" + String.format(Locale.US, "%ta", date));
        System.out.println("指定语言环境的星期全称:" + String.format(Locale.CHINA,"%tA", date));
        System.out.println("指定语言环境的月份简称:" + String.format(Locale.US, "%tb", date));
        System.out.println("指定语言环境的月份全称:" + String.format(Locale.CHINA,"%tB", date));
        System.out.println("2位的年:" + String.format("%ty", date));
        System.out.println("4位的年:" + String.format("%tY", date));
        System.out.println("一年中的哪一天:" + String.format("%tj", date));
        System.out.println("两位的月:" + String.format("%tm", date));
        System.out.println("一个月中的哪一天(带0):" + String.format("%td", date));
        System.out.println("一个月中的哪一天:" + String.format("%te", date));
    }
}

image

 

二、格式化时间

转换字符:

'H' 24 小时制的小时,被格式化为必要时带前导零的两位数,即 00 - 23
'I' 12 小时制的小时,被格式化为必要时带前导零的两位数,即 01 - 12
'k' 24 小时制的小时,即 0 - 23
'l' 12 小时制的小时,即 1 - 12
'M' 小时中的分钟,被格式化为必要时带前导零的两位数,即 00 - 59
'S' 分钟中的秒,被格式化为必要时带前导零的两位数,即 00 - 60 ("60" 是支持闰秒所需的一个特殊值)。
'L' 秒中的毫秒,被格式化为必要时带前导零的三位数,即 000 - 999
'N' 秒中的毫微秒,被格式化为必要时带前导零的九位数,即 000000000 - 999999999
'p' 特定于语言环境的 上午或下午 标记以小写形式表示,例如 "am" 或 "pm"。使用转换前缀 'T' 可以强行将此输出转换为大写形式。
'z' 相对于 GMT 的 RFC 822 格式的数字时区偏移量,例如 -0800
'Z' 表示时区缩写形式的字符串。Formatter 的语言环境将取代参数的语言环境(如果有)。
's' 自协调世界时 (UTC) 1970 年 1 月 1 日 00:00:00 至现在所经过的秒数,即 Long.MIN_VALUE/1000Long.MAX_VALUE/1000 之间的差值。
'Q' 自协调世界时 (UTC) 1970 年 1 月 1 日 00:00:00 至现在所经过的毫秒数,即 Long.MIN_VALUELong.MAX_VALUE 之间的差值。

代码:

import java.util.Date;
import java.util.Locale;
public class FormatTimeDemo {
    public static void main(String[] args) {
        Date date = new Date();
        System.out.println("默认时间格式:" + date);
        System.out.println("两位24小时制的小时:" + String.format("%tH", date));
        System.out.println("两位12小时制的小时:" + String.format("%tI", date));
        System.out.println("24小时制的小时:" + String.format("%tk", date));
        System.out.println("12小时制的小时:" + String.format("%tl", date));
        System.out.println("两位小时中的分钟:" + String.format("%tM", date));
        System.out.println("两位分钟中的秒:" + String.format("%tS", date));
        System.out.println("三位秒中的毫秒:" + String.format("%tL", date));
        System.out.println("九位秒中的毫微秒:" + String.format("%tN", date));
        System.out.println("表示时区缩写形式的字符串:" + String.format("%tZ", date));
        System.out.println("特定于语言环境的上午或下午标记以小写(大写%Tp)形式表示:" + String.format(Locale.US, "%tp", date));
    }
}

image

 

二、格式化日期/时间组合

转换字符:

'R' 24 小时制的时间,被格式化为 "%tH:%tM"
'T' 24 小时制的时间,被格式化为 "%tH:%tM:%tS"
'r' 12 小时制的时间,被格式化为 "%tI:%tM:%tS %Tp"。上午或下午标记 ('%Tp') 的位置可能与语言环境有关。
'D' 日期,被格式化为 "%tm/%td/%ty"
'F' ISO 8601 格式的完整日期,被格式化为 "%tY-%tm-%td"
'c' 日期和时间,被格式化为 "%ta %tb %td %tT %tZ %tY",例如 "Sun Jul 20 16:17:00 EDT 1969"

代码:

import java.util.Date;
public class FormatDateOrTimeDemo {
    public static void main(String[] args) {
        Date date = new Date();
        System.out.println("默认的日期时间格式:" + date);
        System.out.println("24小时制的时间,被格式化为小时和分钟 :" + String.format("%tR", date));
        System.out.println("24小时制的时间,被格式化为小时、分钟和秒:" + String.format("%tT", date));
        System.out.println("12小时制的时间,被格式化为:" + String.format("%tr", date));
        System.out.println("日期被格式化为:" + String.format("%tD", date));
        System.out.println("ISO 8601格式的完整日期,被格式化为:" + String.format("%tF", date));
        System.out.println("日期和时间被格式化为:" + String.format("%tc", date));
    }
}

image

转载于:https://www.cnblogs.com/asonofthesoil/archive/2013/05/25/3099046.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
String.format 格式化日期是安全的。它能够根据指定的格式将日期转换为所需的字符串表示形式。通过使用占位符和格式字符串,可以根据需要自定义日期的格式。在引用中的示例中,使用格式字符串"{0:D}"将当前日期格式化为"2009年3月20日"的形式。同样,引用中给出了使用*.ToString()方法来实现相同效果的示例,其中展示了多种日期格式的示例。 String.format 格式化日期的安全性在于它提供了灵活性和可靠性,可以根据需求对日期进行格式化,而不会引发任何安全问题。只要使用合适的格式字符串,并注意输入的日期的正确性,就可以安全地使用String.format 格式化日期。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [string.Format格式化用法详解](https://blog.csdn.net/a70642869/article/details/103762663)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [C#【基础篇】string.Format格式化日期](https://blog.csdn.net/sinat_40003796/article/details/104146583)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值