android-dateFormat
初始化
- 可以利用Calendar获得本地实例化时间Date对象 Calendar.getInstance().getTime()
- 也可以直接通过构造函数获得 new Date()
- 初始化返回的对象形如 Tue Sep 17 21:43:47 EDT 2019 (星期几 / 月 / 日 /时 / 分 /秒 /东区 /年)
DateFormat
可以使用format
把Date
转成String
//2019年9月17日 默认只展示年月日,而且是本地时间 getDateInstance会获得当前国家的常用格式
String myStr = DateFormat.getDateInstance().format(Calendar.getInstance().getTime());
同时可以为dateformat设置Locale,有两种方式来设置Locale,从而将日期格式转换为指定地区的表达形式
- Locale对象
Locale locale = new Locale("en", "US"); //指定了美国地区
DateFormat usf = DateFormat.getDateInstance(DateFormat.LONG, locale);
String usString = usf.format(new Date()); //September 17, 2019
- 属性值
DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE); //指定了法国
String dfString = df.format(new Date()); //17 septembre 2019
Parse
可以使用parse
把String
转成Date
String date3 = df.format(date1); // 17 septembre 2019(法国)
String date5 = usf.format(date1); //September 17, 2019 美国
Date date2 = df.parse(date3); //Tue Sep 17 00:00:00 EDT 2019 (法国)
Date date4 = usf.parse(date5); //Tue Sep 17 00:00:00 EDT 2019 (美国)
格式化类型
SHORT
全数字, 例如12.13.52
或者3:30pm (具体时间精确到时:分)
MEDIUM
例如Jan 12, 1952 (月份缩写)
LONG
例如January 12, 1952
或者3:30:32pm (月份不缩写,具体时间精确到秒)
FULL
例如Tuesday, April 12, 1952 AD 或者 3:30:42pm PST
.
下面是常见的SimpleDateFormat的使用方法
/*** SimpleDateFormat函数语法:* G 年代标志符* y 年* M 月* d 日* h 时表示12小时制,在上午或下午 (1~12)* H 时表示24小时制,在一天中 (0~23)* m 分* s 秒* S 毫秒* E 周几* D 一年中的第几天* F 一月中第几个星期几* w 一年中第几个星期* W 一月中第几个星期* a 上午 / 下午 标记符* k 时 在一天中 (1~24) (24小时制,比如上午9点就是9,不会再是09)* K 时 在上午或下午 (0~11) (12小时制, 比如上午9点就是9,不会再是09)* z 时区* */private void simpleDateFormatFunction() {SimpleDateFormat myFmt = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");SimpleDateFormat myFmt1 = new SimpleDateFormat("yy/MM/dd HH:mm");SimpleDateFormat myFmt2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//等价于now.toLocaleString()SimpleDateFormat myFmt3 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");SimpleDateFormat myFmt4 = new SimpleDateFormat("一年中的第 D 天 一年中第w个星期 一月中第W个星期 在一天中k时 z时区");SimpleDateFormat myFmt5 = new SimpleDateFormat("yyyy年MM月dd日 ahh时mm分ss秒");Date now = new Date(); //在模拟器上运行,得到的时间正好比本地时间晚12个小时,模拟器设置里面的时区不对,设置的是北美时区,修改为中国时区就对了System.out.println(myFmt.format(now)); // 2019年10月12日 09时47分16秒 yyyy年MM月dd日 HH时mm分ss秒System.out.println(myFmt1.format(now)); // 19/10/12 09:47 yy/MM/dd HH:mmSystem.out.println(myFmt2.format(now)); // 2019-10-12 09:47:16 yyyy-MM-dd HH:mm:ssSystem.out.println(myFmt3.format(now)); // 2019年10月12日 09时47分16秒 周六 yyyy年MM月dd日 HH时mm分ss秒 ESystem.out.println(myFmt4.format(now)); // 一年中的第 285 天 一年中第41个星期 一月中第2个星期 在一天中9时 GMT+08:00时区 一年中的第 D 天 一年中第w个星期 一月中第W个星期 在一天中k时 z时区System.out.println(now.toString()); // Sat Oct 12 10:06:08 GMT+08:00 2019System.out.println(now.toLocaleString()); //2019年10月12日 上午10:25:06System.out.println(myFmt5.format(now)); //2019年10月12日 上午10时30分39秒System.out.println();//年的不同长度表示SimpleDateFormat yFmt1 = new SimpleDateFormat("yyyy年");String year1 = (yFmt1.format(now)); //2019年SimpleDateFormat yFmt2 = new SimpleDateFormat("yyy年");String year2 = (yFmt2.format(now)); //2019年SimpleDateFormat yFmt3 = new SimpleDateFormat("yy年");String year3 = (yFmt3.format(now)); //19年SimpleDateFormat yFmt4 = new SimpleDateFormat("y年");String year4 = (yFmt4.format(now)); //2019年//月的不同长度表示SimpleDateFormat sdf = new SimpleDateFormat("yyyy-M-dd");//yyyy-M-dd 和 yyyy-MM-dd 都可以表示2008-04-24 而且这里必须注意format的格式必须同字符串的划分根式相同,否则crashString dstr = "2008-04-24";try {Date date = sdf.parse(dstr); //Thu Apr 24 00:00:00 GMT+08:00 2008SimpleDateFormat mFmt1 = new SimpleDateFormat("yyyy-M-dd");String month1 = (mFmt1.format(date)); //2008-4-24SimpleDateFormat mFmt2 = new SimpleDateFormat("yyyy-MM-dd");String month2 = (mFmt2.format(date)); //2008-04-24System.out.println();} catch (ParseException e) {e.printStackTrace();}//E 周几的不同长度表示Date date = new Date(); //Thu Apr 24 00:00:00 GMT+08:00 2008SimpleDateFormat eFmt1 = new SimpleDateFormat("这是E");String e1 = (eFmt1.format(date)); //周六 如果系统语言是英文的,那么就是SatSimpleDateFormat eFmt2 = new SimpleDateFormat("这是EEEE");String e2 = (eFmt2.format(date)); //星期六 如果系统语言是英文的,那么就是SaturdaySystem.out.println();//D 一年中的第几天不同长度表示Date date1 = new Date(); //Thu Apr 24 00:00:00 GMT+08:00 2008SimpleDateFormat dFmt1 = new SimpleDateFormat("这是D");String d1 = (dFmt1.format(date1)); //这是285SimpleDateFormat dFmt2 = new SimpleDateFormat("这是DDDD");String d2 = (dFmt2.format(date1)); //这是0285System.out.println();//F 一月中第几个星期几不同长度表示SimpleDateFormat fFmt1 = new SimpleDateFormat("这是第F个");String f1 = (fFmt1.format(new Date())); //这是第2个SimpleDateFormat fFmt2 = new SimpleDateFormat("这是第FFFF个");String f2 = (fFmt2.format(new Date())); //这是第0002个System.out.println();//w 一年中第几个星期不同长度表示SimpleDateFormat wFmt1 = new SimpleDateFormat("第w个星期");String w1 = (wFmt1.format(new Date())); //第41个星期SimpleDateFormat wFmt2 = new SimpleDateFormat("第wwww个星期");String w2 = (wFmt2.format(new Date())); //第0041个星期System.out.println();//W 一月中第几个星期不同长度表示SimpleDateFormat WFmt1 = new SimpleDateFormat("一月中第W个星期");String W1 = (WFmt1.format(new Date())); //一月中第2个星期SimpleDateFormat WFmt2 = new SimpleDateFormat("一月中第WWWW个星期");String W2 = (WFmt2.format(new Date())); //一月中第0002个星期System.out.println();//中英文表示上午和下午a 和 aaSimpleDateFormat aFmt = new SimpleDateFormat("ahh:mm");String a = (aFmt.format(new Date())); //下午 03:12 或者 PM 03:15SimpleDateFormat aaFmt = new SimpleDateFormat("aahh:mm");String aa = (aaFmt.format(new Date())); //下午 03:12 或者 PM 03:15SimpleDateFormat a2Fmt = new SimpleDateFormat("hh:mma");String a2 = (a2Fmt.format(new Date())); //03:14 下午 或者 03:15 PMSimpleDateFormat aa2Fmt = new SimpleDateFormat("hh:mmaa");String aa2 = (aa2Fmt.format(new Date())); //03:14 下午 或者 03:15 PMSystem.out.println();//小时的不同长度表示,12小时制h / hh 或者24小时制 H / HHSimpleDateFormat hFmt = new SimpleDateFormat("h:mm");String h1 = (hFmt.format(new Date())); // 3:59SimpleDateFormat hFmt2 = new SimpleDateFormat("hh:mm");String h2 = (hFmt2.format(new Date())); // 03:59System.out.println();}
android-dateFormat相关推荐
- Android中/system/build.prop文件解读
在/system下的build.prop文件里,我们常看见以下语句. ro.ril.hsdpa.category = 10 ro.ril.hsupa.category = 6 ro.ril.hsxpa ...
- 【Android NDK 开发】在 C 代码中获取 Android 系统信息 ( NDK 项目创建 | NDK 配置 | 获取 Android 系统版本号 )
文章目录 I . 创建 NDK 项目 II . NDK 项目 相关配置 III . NDK 中获取 Android 版本号 IV . 使用 __system_property_get 可获取的参数 I ...
- Android——build.prop 解析
一.概念 在Android设备shell终端可以看到/system目录下的build.prop文件,android的build.prop文件是在Android编译时刻收集的各种property(LCD ...
- Android 系统(200)---Android build.prop参数详解
Android build.prop参数详解 前言 build.prop是Android系统中的一个重要的属性文件,它记录了Android系统运行的很多配置信息,当程序运行时需要某种系统状态时,会到该 ...
- Android 系统(95)---Android build.prop参数详解
Android build.prop参数详解 前言 build.prop是Android系统中的一个重要的属性文件,它记录了Android系统运行的很多配置信息,当程序运行时需要某种系统状态时,会到该 ...
- Android 系统(71)---Android系统build.prop文件生成过程
Android系统build.prop文件生成过程 Android系统build.prop生成过程 这个文件类似于windows的注册表文件,定义了系统初始的一些参数属性,功能的开放等,通过调整或增加 ...
- android中prop配置参数名,21.Android系统属性build.prop文件(笔记)
一.概念 在Android设备shell终端可以看到/system目录下的build.prop文件,Android的build.prop文件是在Android编译时刻收集的各种property,编译完 ...
- android 读build.prop,Android系统下的build.prop文件
Android系统下的build.prop文件,用adb shell进入,再进入到system目录,查看该目录下的文件,会看到build.prop文件,用exit命令退出. 1551927518(1) ...
- android 读build.prop,Android build.prop简介
build.prop位于手机的/system/build.prop中 build.prop记录一些系统设置,是一个属性文件,相当于Windows系统的注册表. build.prop生成: Make系统 ...
- Android系统移植与调试之-------build.prop文件详细赏析
小知识:什么是build.prop? /system/build.prop 是一个属性文件,在Android系统中.prop文件很重要,记录了系统的设置和改变,类似於/etc中的文件.这个文件是如 ...
最新文章
- 苗旺:因果推断,观察性研究和 2021 年诺贝尔经济学奖 | 青源 Talk 第 8 期
- jenkins配置权限不对导致无法登陆或者空白页面解决办法
- android 模糊度处理_图像处理评价指标之模糊度、清晰度(待更新)
- 二叉树题目---3 另一个树的子树 AND 二叉树最大深度
- 从Bayes角度理解Deep learning
- VR来了,科技的各行各业要如何做好准备?
- 王春晖:发展自主知识产权的网安核心技术迫在眉睫
- c++ list排序_STL之list
- 京西古道,王平到圈门的穿越
- SAP资产评估组名_SAP软件 财务月结步骤
- JAVA流-File文件
- 计算机教师教育笔记,信息技术教师教育随笔
- 为您创建完美商业标识的 10 款 Logo 设计软件 【已翻译100%】
- 基于GITHUB ACTION的定时任务,真香!
- 游戏后台之高效定时器-时间轮
- 通过域名访问接口,报400
- perror和strerror的使用和区别
- thingsboard 编译失败,报错 Failed to execute goal com.mycila:license-maven-plugin:3.0
- c#程序连接oracle失败问题
- focal loss 通俗理解