006--玩转时间操作+面试题

VIP免费
2024-12-11 3 0 20.37KB 6 页 5.9玖币
侵权投诉
玩转时间操作 + 面试题
JDK 8 之前,Java 语言为我们提供了两个类用于操作时间,它们分别是:java.util.Date
java.util.Calendar ,但在 JDK 8 的时候为了解决旧时间操作类的一些缺陷,提供了几个
新的类,用于操作时间和日期,它们分别是:LocalTimeLocalDateTimeInstant,都位
java.time 包下。
时间的操作在我们日常的开发中经常见到,比如,业务数据都要记录创建时间和修改时
间,并要把这些时间格式化之后显示到前端页面,再比如我们需要计算业务数据的时间间
隔等,都离不开对时间的操作,那如何正确而优雅地使用时间?这就是我们接下来要讨论
的话题。
时间基础知识科普
格林威治时间
格林威治(又译格林尼治)是英国伦敦南郊原格林威治天文台的所在地,它是世界计算时
间和地球经度的起点,国际经度会议 1884 年在美国华盛顿召开,会上通过协议,以经过
格林威治天文台的经线为零度经线(即本初子午线),作为地球经度的起点,并以格林威
“ ”治为 世界时区 的起点。
格林威治时间和北京时间的关系
格林威治时间被定义为世界时间,就是 0 时区,北京是东八区。也就是说格林威治时间的
1 0 点,对应到北京的时间就是 1 8 点。
时间戳
时间戳是指格林威治时间 1970-01-01 00:00:00 (北京时间 1970-01-01 08:00:00)起至现
在的总秒数。
JDK 8 之前的时间操作
1 获取时间
Date date = new Date();
System.out.println(date);
Calendar calendar = Calendar.getInstance();
Date time = calendar.getTime();
System.out.println(time);
2 获取时间戳
long ts = new Date().getTime();
System.out.println(ts);
long ts2 = System.currentTimeMillis();
System.out.println(ts2);
long ts3 = Calendar.getInstance().getTimeInMillis();
System.out.println(ts3);
3 格式化时间
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sf.format(new Date())); // output:2019-08-16 21:46:22
SimpleDateFormat 构造参数的含义,请参考以下表格信息:
字符 含义 示例
yyyyy-1996
MMM-07
d月中的天数 dd-02
D年中的天数 121
E星期几 星期四
H小时数(0-23HH-23
h小时数(1-12hh-11
m分钟数 mm-02
s秒数 ss-03
Z时区 +0800
使用示例:
获取星期几:new SimpleDateFormat(“E”).format(new Date())
获取当前时区:new SimpleDateFormat(“Z”).format(new Date*())
注意事项 :在多线程下 SimpleDateFormat 是非线程安全的,因此在使用
SimpleDateFormat 时要注意这个问题。在多线程下,如果使用不当,可能会造成结果不
对或内存泄漏等问题。
4 时间转换
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// String Date
String str = "2019-10-10 10:10:10";
System.out.println(sf.parse(str));
// 时间戳的字符串 转 Date
String tsString = "1556788591462";
// import java.sql
Timestamp ts = new Timestamp(Long.parseLong(tsString)); // 时间戳的字符串转
Date
System.out.println(sf.format(ts));
注意事项 :当使用 SimpleDateFormat.parse() 方法进行时间转换的时
候,SimpleDateFormat 的构造函数必须和待转换字符串格式一致。
5 获得昨天此刻时间
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, -1);
System.out.println(calendar.getTime());
摘要:

玩转时间操作+面试题在JDK8之前,Java语言为我们提供了两个类用于操作时间,它们分别是:java.util.Date和java.util.Calendar,但在JDK8的时候为了解决旧时间操作类的一些缺陷,提供了几个新的类,用于操作时间和日期,它们分别是:LocalTime、LocalDateTime、Instant,都位于java.time包下。时间的操作在我们日常的开发中经常见到,比如,业务数据都要记录创建时间和修改时间,并要把这些时间格式化之后显示到前端页面,再比如我们需要计算业务数据的时间间隔等,都离不开对时间的操作,那如何正确而优雅地使用时间?这就是我们接下来要讨论的话题。时间基...

展开>> 收起<<
006--玩转时间操作+面试题.docx

共6页,预览2页

还剩页未读, 继续阅读

声明:本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。玖贝云文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知玖贝云文库,我们立即给予删除!
分类:计算机 价格:5.9玖币 属性:6 页 大小:20.37KB 格式:DOCX 时间:2024-12-11

开通VIP享超值会员特权

  • 多端同步记录
  • 高速下载文档
  • 免费文档工具
  • 分享文档赚钱
  • 每日登录抽奖
  • 优质衍生服务
/ 6
客服
关注