c#日期转换周几_Java时间与日期

8cf76982010c0ccdc056f3948231c1c0.png
只有把眼前的事情做好,才能考虑其他的问题。
  • 众所周知,全世界在同一时刻看手表肯定不会看到同一个时间,因为地球是圆的,面对太阳的角度是不一样的,我们一般说时间几点几点,是指的本地时间,比如国内大部分以北京时间为准
  • 光靠本地时间是无法准确表示真正的时间,因为北京的本地时间和美国的本地时间肯定不是同一个时间,所以产生了时区这个概念,全球一共有24个时区,以伦敦为标准时区,其他市区按照东西偏移,北京所在市区是东八区。
  • 时区一般由UTC表示,因为UTC更为标准,还有GMT基本等价于UTC。东八区一般用UTC+08:00
  • 夏令时是更复杂的计算方式,通常夏天开始的时候把时间往后拨1小时,夏天结束往前拨1小时,不过中国已经废除,美国还在使用
  • 计算机中,通常使用Local表示一个国家或者地区的日期、时间、数字、货币等格式,因为不同国家表示习惯不一样。zh_CN表示中文+中国,en_US表示英语+美国

时间戳

  • 时间戳是从1970年1月1日(格林威治时区/GMT+00:00)开始到现在的秒数,然后根据各个时区转化为当地时间
  • 可以使用System.currentTimeMillis()获取当前时间戳

Date基本用法

  • Date定义在java.util包中,包中还包括Calendar和TimeZone
  • 最新的JDK8+还有一套新的API,定义在java.time包中,主要包括LocalDateTime、ZonedDateTime、ZoneId
  • 在java.sql中还有一个Date类,这个Date类用在户数据库中,要注意区分
 public static void getDate() {System.out.println(System.currentTimeMillis());// 获取当前时间Date对象:Date date = new Date();System.out.println(date.getYear() + 1900); //获取当前年 必须加上1900System.out.println(date.getMonth() + 1); //获取当前月份 0~11,必须加上1System.out.println(date.getDate()); //获取当前日期 1~31,不能加1// 转换为String:System.out.println(date.toString());// 转换为GMT时区:System.out.println(date.toGMTString());// 转换为本地时区:System.out.println(date.toLocaleString());System.out.println((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(date)); // 根据具体格式转化时间}

Calendar

  • Calendar可以设置并获取年月日,和Date相比,多了一个时间计算的功能
 public static void getCalendar() {// 获取当前时间:Calendar c = Calendar.getInstance();System.out.println(new SimpleDateFormat("yyyy-mm-dd HH:mm:ss").format(c.getTime())); // getTime 转化为Date对象System.out.println(c.get(Calendar.YEAR)); // 获取年System.out.println(1 + c.get(Calendar.MONTH)); // 获取月System.out.println(c.get(Calendar.DAY_OF_MONTH)); // 获取日System.out.println(c.get(Calendar.DAY_OF_WEEK)); // 获取周几System.out.println(c.get(Calendar.HOUR_OF_DAY)); // 获取小时System.out.println(c.get(Calendar.MINUTE)); // 获取分钟System.out.println(c.get(Calendar.SECOND)); // 获取秒System.out.println(c.get(Calendar.MILLISECOND)); // 获取毫秒Calendar calendar = Calendar.getInstance();calendar.set(Calendar.YEAR,2011); // 设置年System.out.println(new SimpleDateFormat("yyyy-mm-dd HH:mm:ss").format(calendar.getTime()));calendar.clear(); // 清除日期System.out.println(new SimpleDateFormat("yyyy-mm-dd HH:mm:ss").format(calendar.getTime()));}

TimeZone

  • 时区,可以用来获取时区,转换时区
 public static void timeZoneDemo () {System.out.println(TimeZone.getDefault().getID());System.out.println(TimeZone.getTimeZone("GMT+10:00").getID()); // GMT+10:00 时区System.out.println(TimeZone.getTimeZone("Asia/Shanghai").getID());// 将上海时间转化为纽约时间Calendar calendar = Calendar.getInstance();calendar.clear();calendar.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));calendar.set(2020,1,2,3,04,0);SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");System.out.println(simpleDateFormat.format(calendar.getTime()));simpleDateFormat.setTimeZone(TimeZone.getTimeZone("America/New_Yourk"));System.out.println(simpleDateFormat.format(calendar.getTime()));}

LocalDateTime

  • LocalDateTime可以打印当前日期、时间,LocalDate可以打印当前日期,LocalTime可以打印当前时间
 public static void getLocalDateDemo() {System.out.println(LocalDate.now());System.out.println(LocalTime.now());LocalDateTime now = LocalDateTime.now();System.out.println(now.toLocalDate()); // 转化为日期System.out.println(now.toLocalTime()); // 转化为时间System.out.println(LocalDateTime.of(2020,10,10,10,10,10));System.out.println(LocalDate.of(2020,10,10));System.out.println(LocalTime.of(10,10,10));System.out.println(LocalDateTime.parse("2020-10-10T10:10:10"));}
  • LocalDateTime还提供了一系列对日期时间增减的方法
    • plusDays 加天 、 minusDays 减天
    • plusHours 加小时、 minusHours 减小时等...
  • 可以针对年月日时间做调整
    • 调整年:withYear()
    • 调整月:withMonth()
    • 调整日:withDayOfMonth()
    • 调整时:withHour()
    • 调整分:withMinute()
    • 调整秒:withSecond()
  • 比较时间可以使用LocalDateTime提供的方法
    • isBefore() 是否在什么时间的前面
    • isAfter()
  • Duration 表示两个时刻之间的间隔 Duration.between(stratTime,endTime)
  • Period 表示两个日期之间的间隔 LocalDate.of(2020,10,10).until(LocalDate.of(2020,10,1))

DateTImeFormatter

  • DateTimeFormatter可以自定义输出格式,和自定义解析格式
 public static void getDateTimeFormatterDemo () {System.out.println((DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss")).format(LocalDateTime.now()));System.out.println(LocalDateTime.parse("2020/10/10 10:10:10",DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss")));}

ZonedDateTime

  • ZonedDateTime可以获取一个带时区的时间
 public static void getZonedDateTime() {System.out.println(ZonedDateTime.now()); // 获取当前时间-带时区System.out.println(ZonedDateTime.now(ZoneId.of("America/New_York"))); // 根据指定时区获取当前时间System.out.println((LocalDateTime.of(2020,10,10,10,10,10)).atZone(ZoneId.systemDefault())); //根据时区打印当前时间 System.out.println((LocalDateTime.of(2020,10,10,10,10,10)).atZone(ZoneId.of("America/New_York"))); // 根据指定时区打印当前时间ZonedDateTime zbj = ZonedDateTime.now(ZoneId.of("Asia/Shanghai"));ZonedDateTime zny = zbj.withZoneSameInstant(ZoneId.of("America/New_York")); // 时区转换}

本文作者《猿氏·凯》,如果雷同,纯属抄袭····

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/429867.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python开发之--前端 HTML基础

一:HTML介绍 HTML:超文本标记语言,标准通用标记语言下的一个应用。包括“头”部分(英语:Head)、和“主体”部分(英语:Body),其中“头”部提供关于网页的信息&…

给与用户建立dblink的权限_网络安全 之 NTFS安全权限

NTFS安全权限一、NTFS权限概述1、通过设置NTFS权限,实现不同的用户访问不同的权限2、分配了正确的访问权限后,用户才能访问其资源3、设置权限防止资源被篡改、删除二、文件系统概述 文件系统即在外部存储设备上组织文件的方法常用的文件系统:…

TCP 连接中的TIME_WAIT

原文:http://blog.csdn.net/wangpengqi/article/details/17245349 这就有个细节,一次http请求,谁会先断开TCP连接?什么情况下客户端先断,什么情况下服务端先断? 百度后,找到原因,主要…

丁丁打折网卷能用吗_微信群控还能用吗?现在什么群控还能使用吗?

微信群控系统还能用吗?为什么现在微信群控系统越来越被限制了呢?其实,微信群控我想在生活中占据着很大的位置!因为微信这么多的使用,现在微信使用人数都是几十亿了,所以很多人看重微信群控系统的市场&#…

错题整理

1.JAVA语言的下面几种数组复制方法中,哪个效率最高? A for循环逐一复制 B System.arraycopy C System.copyof D 使用clone方法 答案:B A、for循环的话,很灵活,但是代码不够简洁. for循环为什么慢,java中所…

xpath中两个冒号_爬虫学习(5)—XPath

之前我们写了一个简单的爬虫,在提取页面信息时我们使用正则表达式来匹配内容,但是正则表达式的书写比较繁琐,而且一旦错误就可能导致匹配失败。对于网页的节点来说,它可以定义id,class或其他的属性,而且节点…

canny算法的实现(android加载图片,数组写入文件换行)

Canny边缘检测首先要对图像进行高斯去噪,前面讲到了高斯去噪处理,这里从对图像灰度进行微分运算讲起吧。微分运算常用的方法是利用模板算子,把模板中心对应到图像的每一个像素位置,然后按照模板对应的公式对中心像素和它周围的像素…

【VirtualBox】VirtualBox的桥接网络模式,为啥网络不稳定?

网桥模式访问外网非常慢,经常卡死,ping时断时续 七搞八搞,反复重启了几次 TMD 就好了,也不知道什么情况,VirtualBox还是不太好使啊。。。。。 网桥模式 设置 如下: 参考资料: http://blog.csdn…

白盒基本路径发测试实验报告_软件生命周期、白盒测试、黑盒测试

继上一讲:隅巳毕月:达摩克里斯之——排序与查找技术​zhuanlan.zhihu.com我们今天来讲一下软件周期与两种软件测试方法软件开发应遵循一个软件的生命周期,通常把软件产品从提出、实现、使用、维护到停止使用、退役的过程称为软件生命周期。软…

Windows7睡眠后自动唤醒

笔者的电脑(Windows7 64位旗舰版)睡眠后,隔段时间后会自动唤醒。经两项配置后,解决了该问题。 1 禁用唤醒定时器 控制面板里进入"电源选项""更改计划设置"界面,如下图所示 单击上图的"更改高…

bootstrap 两个轮播图冲突_为什么使用bootstrap在一个页面同时做两个轮播效果时,只有第一个有效??...

我们都知道使用bootstrap做轮播效果非常快,但是有时候一个页面会需要两个轮播;但这个时候再次使用bootstrap做轮播效果时就会失效;原因在于bootstrap的Carousel问题,只要修改一下id,就好了~~这是第一个轮播&#xff1a…

Ajax的用法

1 Ajax是什么 1.1 Asynchronous JavaScript and XML(异步的javascript和xml) 实质为:使用浏览器内置的一个对象(XmlHttpRequest)向服务器发送请求,服务器返回xml数据或文本数据给浏览器,然后在浏…

Node.js server使用

一、创建项目 #创建项目目录 cd /data mkdir webroot cd webroot#初始化git git init vim .gitignore 输入: node_modules/ 保存: :wq#初始化npm,生成package.json npm init#安装express npm install -D express#创建入口文件 vim app.js输入: var expr…

模仿Linux内核kfifo实现的循环缓存

想实现个循环缓冲区(Circular Buffer),搜了些资料多数是基于循环队列的实现方式。使用一个变量存放缓冲区中的数据长度或者空出来一个空间来判断缓冲区是否满了。偶然间看到分析Linux内核的循环缓冲队列kfifo的实现,确实极其巧妙。…

领域模型(domain model)贫血模型(anaemic domain model)充血模型(rich domain model)

领域模型是领域内的概念类或现实世界中对象的可视化表示,又称为概念模型或分析对象模型,它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。 贫血模型是指使用的领域对象中只有setter和getter方法&…

datagrid显示mysql_WPF DataGrid显示MySQL查询信息,且可删除、修改、插入 (原发布 csdn 2018-10-13 20:07:28)...

1、入行好几年了,工作中使用数据库几率很小(传统行业)。借着十一假期回家机会,学习下数据库。2、初次了解数据库相关知识,如果本文有误,还望告知。3、本文主要目的,记录下wpf界面显示数据库信息,且可进行删…

mysql 集群 qps_MySQL Cluster:如何通过扩展为MySQL带来2亿QPS

本篇文章的目的在于介绍MySQL Cluster——也就是MySQL的一套内存内、实时、可扩展且具备高可用性的版本。在解决标题中所提到的每秒2亿查询处理能力问题之前,我们先对MySQL集群的背景信息及其架构进行一番回顾,这将有助于大家理解上述目标的实现过程。My…

测试题的答案(技术博客)

根据老师的要求,我把上次测试的答案汇总了下,将程序写的得到满分的答案给挑了出来,希望大家不要追究版权问题,若有问题,我们私下武力解决问题。 第一题:从键盘输入一个大写字母,要求改用小写字母…

history模式监听_面试题:VueRouter中的 hash 模式和 history 模式有什么区别

面试题:VueRouter中的 hash 模式和 history 模式有什么区别hash模式hash 模式的路由中带有 # 号hash 模式通过 window.onhashchange 方法监听路由的修改hash 模式在页面刷新的时候,发送的请求 url 是不带 # 后面的内容的hash 模式可以兼容部分低版本的浏…

DC综合流程

Design Compiler and the Design Flow 步骤 将HDL描述的设计输入到Design Compiler中Design Compiler使用technology libraries, synthetic or DesignWare libraries, and symbol libraries执行综合过程,并展示综合结果。将HDL翻译为门级描述之后,Design…