`
kingsui
  • 浏览: 189798 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java自定义时间格式全接触

    博客分类:
  • Java
阅读更多
一般我们Java实现显示时间方式有:Date date = new Date();
date.getTime();
还有一种方式,使用System.currentTimeMillis();

这两种方式获得的结果是一样的,都是得到一个当前的时间的long型的时间的毫秒值,这个值实际上是当前时间值与1970年一月一号零时零分零秒相差的毫秒数。
而且由于Java默认的时间格式是:Mon Jul 03 08:47:50 CST 2006的。
一般我们在中文或者具体项目中使用比较麻烦。

例如我们要显示的时间格式:yyyy年MM月dd日_HH时mm分ss秒那么就可以通过自定义自己的时间格式来完成了。

首先,定义一个SimpleDateFormat变量
SimpleDateFormat sdf = new SimpleDateFormat(("yyyy-MM-dd",Locale.SIMPLIFIED_CHINESE);
这个构造函数的定义如下:
SimpleDateFormat(String pattern, Locale locale)

第一个参数pattern,是时间格式。第二个参数,是用来设置时区的,这里用到了java.util.Locale这个类,这个类了面定义了很多静态变量,直接拿过来用就OK,我们把时区设置为Locale.SIMPLIFIED_CHINESE,只看名字,这个静态变量的意义已经很清楚了

Pattern参数:
Letter Date or Time Component  Presentation  
G Era designator  Text  
y Year  Year  
M  Month in year  Month  
w  Week in year  Number  
W  Week in month  Number  
D  Day in year Number  
d  Day in month  Number  
F  Day of week in month  Number  
E  Day in week  Text
a  Am/pm marker  Text  
H  Hour in day (0-23) Number  
k  Hour in day (1-24) Number  
K  Hour in am/pm (0-11)  Number  
h   Hour in am/pm (1-12)  Number  
m   Minute in hour  Number  
s   Second in minute  Number  
S   Millisecond  Number  
z   Time zone   General time zone  
Z   Time zone  RFC 822 time zone  

所以
使用这个SimpleDateFormat把当前时间格式化为一个如下格式的时间字符串“XXXX年XX月XX日_XX时XX分XX秒”,代码:

sdf.applyPattern("yyyy年MM月dd日_HH时mm分ss秒");

String timeStr = sdf.format(new Date());

所以完成的代码:

import java.util.*;
import java.text.*;

public class TimeFormat {
 public static void main(String[] args) {
   //默认的时间显示模式
   Date date = new Date();
   date.getTime();
   System.out.println(date);
   System.currentTimeMillis();
   //自定义的时间显示模式
   SimpleDateFormat sdf = new SimpleDateFormat("",Locale.SIMPLIFIED_CHINESE);
   sdf.applyPattern("yyyy年MM月dd日_HH时mm分ss秒");
   String timeStr = sdf.format(new Date());
       System.out.println(timeStr);

 }

}
分享到:
评论
2 楼 sun625470637 2018-03-19  
数据库读出来的是Thu Mar 15 19:09:25 CST 2018  带时区 带精度的
simpledateformat之后是2018-03-15 19:09:25 也就是魏要的样式 不过是String的
但是往前端传的时候还要把2018-03-15 19:09:25set到Date里传回去 又默认加上时区精度了
前端就显示2018-03-15T11:09:00.000+0000 怎么弄啊??
1 楼 sun625470637 2018-03-19  
数据库读出来的是Thu Mar 15 19:09:25 CST 2018
simpledateformat之后是2018-03-15 19:09:25
但是往前端传的是个Bean类型 还要把2018-03-15 19:09:25转成Date传回去
前端就显示2018-03-15T11:09:00.000+0000 
但是我想要的是前端显示2018-03-15 19:09:25 而且传过去的还是Date类型的
大神 能实现么???

相关推荐

Global site tag (gtag.js) - Google Analytics