Java 把 Date 转换为 String 类型
2016-07-27 19:37
459 查看
转载请注明出处: http://blog.csdn.net/like_program/article/details/52048671
我们在写程序时,有时需要获取并显示 当前系统时间 ,这时候可以用 Date 类,代码如下:
我们新建一个 DateTest.java ,代码如下:
运行一下,输出结果为:
Wed Jul 27 16:14:31 CST 2016
很方便,但是有一个问题,这种方式获取的时间是 格林威治时间 ,它的格式是:
Wed Jul 27 16:14:31 CST 2016
显然,这种格式不符合中国人的习惯,所以我们需要转化一下,转化为我们习惯的格式。要转换格式,我们要用到 SimpleDateFormat 类。
修改 DateTest.java 代码如下
输出结果为:
2016-07-27 16:14:31
这里,先创建一个 simpleDateFormat 对象,往它的构造参数里传入你想要的日期格式,然后调用 simpleDateFormat 的 format 方法,传入当前系统时间,这样,输出的就是符合我们习惯的日期格式了。
日期格式各个参数的含义:
yyyy 年
MM 月
dd 日
HH 时 (24小时制,如 16:14)
hh 时 (12小时制,如 4:14)
mm 分
ss 秒
看上去直观了不少,但是好像还不够,要是像这样就更好了:
2016年07月27日 16:14:31
再改:
输出结果为:
2016年07月27日 16:14:31
如果想把月份里的那个 0 去掉的话,变为:
2016年7月27日 16:14:31
我们只需要修改下日期格式,将表示月份的 MM 改为 M:
输出结果为:
2016年7月27日 16:14:31
OK,大功告成!
写到这,应该就完了,但我想知道日期格式中 yyyy MM 等等,这些字母的个数究竟写多少个为好,如果 少写 或 多写 ,会出现什么结果。为满足自己的好奇心,我测试了 1 到 4 个字母的情况:
实验结果如下:
总结:
由表格可见,最方便,最好记,最符合我们习惯的写法就是:
日期格式中的字母,年,月,日 写一个字母,时,分,秒 写两个字母。
即:
输出结果为:
2016年7月27日 06:04:01
当然,你也可以根据自己的习惯来写。
我们在写程序时,有时需要获取并显示 当前系统时间 ,这时候可以用 Date 类,代码如下:
Date date = new Date();
我们新建一个 DateTest.java ,代码如下:
import java.util.Date; public class DateTest { public static void main(String[] args) { Date date = new Date(); System.out.println(date); } }
运行一下,输出结果为:
Wed Jul 27 16:14:31 CST 2016
很方便,但是有一个问题,这种方式获取的时间是 格林威治时间 ,它的格式是:
Wed Jul 27 16:14:31 CST 2016
显然,这种格式不符合中国人的习惯,所以我们需要转化一下,转化为我们习惯的格式。要转换格式,我们要用到 SimpleDateFormat 类。
修改 DateTest.java 代码如下
import java.text.SimpleDateFormat; import java.util.Date; public class DateTest { public static void main(String[] args) { Date date = new Date(); String pattern = "yyyy-MM-dd HH:mm:ss"; SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern); System.out.println(simpleDateFormat.format(date)); } }
输出结果为:
2016-07-27 16:14:31
这里,先创建一个 simpleDateFormat 对象,往它的构造参数里传入你想要的日期格式,然后调用 simpleDateFormat 的 format 方法,传入当前系统时间,这样,输出的就是符合我们习惯的日期格式了。
日期格式各个参数的含义:
yyyy 年
MM 月
dd 日
HH 时 (24小时制,如 16:14)
hh 时 (12小时制,如 4:14)
mm 分
ss 秒
看上去直观了不少,但是好像还不够,要是像这样就更好了:
2016年07月27日 16:14:31
再改:
import java.text.SimpleDateFormat; import java.util.Date; public class DateTest { public static void main(String[] args) { Date date = new Date(); String pattern = "yyyy年MM月dd日 HH:mm:ss"; SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern); System.out.println(simpleDateFormat.format(date)); } }
输出结果为:
2016年07月27日 16:14:31
如果想把月份里的那个 0 去掉的话,变为:
2016年7月27日 16:14:31
我们只需要修改下日期格式,将表示月份的 MM 改为 M:
import java.text.SimpleDateFormat; import java.util.Date; public class DateTest { public static void main(String[] args) { Date date = new Date(); // String pattern = "yyyy年MM月dd日 HH:mm:ss"; String pattern = "yyyy年M月dd日 HH:mm:ss"; SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern); System.out.println(simpleDateFormat.format(date)); } }
输出结果为:
2016年7月27日 16:14:31
OK,大功告成!
写到这,应该就完了,但我想知道日期格式中 yyyy MM 等等,这些字母的个数究竟写多少个为好,如果 少写 或 多写 ,会出现什么结果。为满足自己的好奇心,我测试了 1 到 4 个字母的情况:
实验结果如下:
个数 | y(年) | M(月) | d(日) | H(时) | m(分) | s(秒) |
---|---|---|---|---|---|---|
1个 | 2016 | 7 | 27 | 16 | 4 | 1 |
2个 | 16 | 07 | 27 | 16 | 04 | 01 |
3个 | 2016 | 7月 | 027 | 016 | 014 | 001 |
4个 | 2016 | 7月 | 0027 | 0016 | 0014 | 0001 |
由表格可见,最方便,最好记,最符合我们习惯的写法就是:
日期格式中的字母,年,月,日 写一个字母,时,分,秒 写两个字母。
即:
import java.text.SimpleDateFormat; import java.util.Date; public class DateTest { public static void main(String[] args) { Date date = new Date(); String pattern = "y年M月d日 HH:mm:ss"; SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern); System.out.println(simpleDateFormat.format(date)); } }
输出结果为:
2016年7月27日 06:04:01
当然,你也可以根据自己的习惯来写。
相关文章推荐
- JDBC操作简单实用了IOUtils
- Java web文件上传下载
- Java web文件上传下载
- Java web文件上传下载
- java基础之:匿名内部类
- Java心得体会之常量
- JDBC进行处理大文件和批处理
- ACM中java解题常用方法及准则
- Two Sum
- 实现java中自定义类加载器
- Java主要特性
- CXF与Spring集成
- Java环境变量配置(详细)
- SpringMVC中无法获取SessionFactory的解决!
- DAO层、Service层、Controller层、View层介绍
- Spring 国际化支持 消息传递 以及 AOP 面向方面编程
- java中用小数点分隔字符串问题
- SpringMVC+MyBatis+logback
- Java 设计模式
- Spring Boot使用Druid和监控配置