问题描述:
- 日期与时间的格式化
- 实际编程过程中,常常要输出日期与时间,也需要对日期与时间进行格式化输出
- 日期与时间都可以转化成String对象,所以可以使用String类中的format()函数对日期与时间字符串进行格式化。
- 待格式化日期通过Date对象给出。
- 需要先编写格式化字符串来指定期望的格式
- 其他普通字符串的格式化
- 待格式化对象可以是任何其他类型,不一定非得是Date对象
- 也需要需要先编写格式化字符串来指定期望的格式 ,但是涉及的转义符和“”1.日期与时间的格式化“”中涉及的转义符不同
编程思路:
概述:日期与时间的格式化 和 其他普通类型对象的格式化 在编程中有诸多相似之处
-
- 首先,都是使用String 类中的format()函数
- 其次,都需要编写格式化字符串来指定期待的格式
但是,也有诸多不同之处
-
- 首先,用于编写格式化字符串的转义 符号不同(具体不同之处请看step2)
- 其次,待格式化对象不同,日期与时间格式化时待格式化对象是Date实例,而其他普通类型对象格式化中待格式化对象可以是任何其他类型
step1,明确String类中format()函数有两种重载形式:
- public static String format(String format, Object ... args)
功能:使得字符串按照参数所指定的格式被格式化,并且格式化之后的新字符串使用本地默认的语言环境
@param format:String 通过此参数说明期待的格式
@param args:Object 可以有0个或者多个该类型参数
该类型参数是参数format:String中所引用的变量
@return 按照要求格式化所得的新的字符串
- public static String format(Locale l, String format, Object ... args)
备注:这个函数和上述函数唯一的不同之处在于,这个函数可以通过参数Locale 来指定格式化过程中所使用的语言环境而上述函数只能默认地使用本地语言环境
如果l:Locale为null,则不对待格式化的字符串进行本地化,(也即不改变待格式化的字符串所使用的的语言)
如果l:Locale不为null,则对待格式化的字符串进行本地化(也即将待格式化的字符串由它本身所在的语言环境变成l:Locale所指定的语言环境)
step2,明确上述函数中的format:String参数应该怎样编写
- 日期与时间的格式化
- 会使用一些特殊符号来表示所期待的日期与时间格式(Date对象的格式化)
2.用于普通类型待格式化对象的转换符(非Date对象的格式化)
概述:上述转换符用于日期与时间的格式化,也即上述转化符只能用于Date对象的格式化;
下面的转换符可以用于任何参数类型的格式化:
应用实例:
1.格式化日期和时间字符串
-
-
/** * @author lxrm * @date 20170304 * @description 本程序讲解如何将日期与时间进行格式化,使得Date对象所表示的日期与时间 * 变成我们想要的格式 * 编程思路: * 使用java.lang.String类中的format()函数来实现日期与时间字符串的格式化*/ package char_and_string; import java.util.Date; public class Application1_format_DateAndTime { public static void main(String[] args){ Date date=new Date(); /*用法一:先用format()函数获得单个的String对象(如日、月、年) * 然后按照想要的格式将单个String对象组合成自己想要的表现形式 */ String month=String.format("%tm", date); String day=String.format("%td", date); String hour=String.format("%tH", date); String minute=String.format("%tM", date); String second=String.format("%tS", date); System.out.println("今天是"+month+"月"+day+"日"); System.out.println("时间 :"+hour+"时"+minute+"分"+second+"秒"); /*用法二:直接使用格式字符串中完整的格式,获得同时包含有“日、月、年”的String对象 * */ String formatedDate=String.format("%tF", date); System.out.println("日期:"+formatedDate); } }
-
2.格式化除了Date对象之外的其他类型对象
-
-
/*用法三:格式化除了Date型对象之外,其他类型的对象 * */ String hex=String.format("%x", 400);//将400格式化为16进制的字符串 String octal=String.format("%o", 400);//将400格式化为8进制的字符串 //String scientificNotation=String.format("%e", 400);//bug:报错? 使用科学计数法表示400 System.out.println(" String.format()函数用于格式化其他类型对象:"); System.out.println("400的十六进制形式:"+hex); System.out.println("400的八进制形式:"+octal); //System.out.println("400的科学计数法表示形式:"+scientificNotation);
-
4)