当前位置: 首页 > news >正文

嘉兴网站定制公司wordpress仿社区

嘉兴网站定制公司,wordpress仿社区,做网站的公司济南赛博科技市场,建设银行属于哪里学习java很痛苦这些天我不再需要使用java.util.Date了#xff0c;但是最近选择这样做#xff0c;这让我想起了使用与Java Date关联的API的痛苦 。 在这篇文章中#xff0c;我看了弃用的参数化Date构造函数的一些令人惊讶的API期望#xff0c;该构造函数接受六个整数 。 在… 学习java很痛苦 这些天我不再需要使用java.util.Date了但是最近选择这样做这让我想起了使用与Java Date关联的API的痛苦 。 在这篇文章中我看了弃用的参数化Date构造函数的一些令人惊讶的API期望该构造函数接受六个整数 。 在2016年如果使用Java SE 8编写新代码则Java开发人员很可能会使用Java 8的新Date / Time API如果使用Java的版本则可能会使用第三方Java日期/时间库例如Joda-Time 。 Java早于Java8。我选择最近在一个非常简单的基于Java的工具中使用Date 我希望将它作为单个Java源代码文件交付无需构建工具即可轻松编译并且不依赖于外部的任何库。 Java SE。 此简单工具的目标部署环境是Java SE 7因此不能选择Java 8 Date / Time API。 接受六个整数的Date构造函数的缺点之一是这六个整数之间的区别并确保按正确的顺序提供它们。 即使强制执行正确的命令指定月份和年份也会有一些细微的意外。 正确实例化Date对象的最简单方法也许是通过SimpleDateFormat 。 parseString或通过不建议使用的Datelong构造函数接受从时期零开始的毫秒数。 我的第一个代码清单演示了一个用0小时0分钟和0秒表示一个表示“ 2016年9月26日”的Date实例。 此代码清单使用String通过SimpleDateFormat.parse(String)实例化Date实例。 final SimpleDateFormat formatter new SimpleDateFormat(DEFAULT_FORMAT); final Date controlDate formatter.parse(CONTROL_DATE_TIME_STR); printDate(Control Date/Time, controlDate); 运行上述命令时打印结果将达到预期效果并且输出日期与为Date实例提供并分析的字符串匹配。 Control Date/Time - Mon Sep 26 00:00:00 MDT 2016使用接受整数以表示Date实例的不同“字段”的Date构造函数可能会很诱人但它们会带来前面提到的细微差别。 下一个代码清单显示了一种非常幼稚的方法来调用Date构造函数该构造函数接受按以下顺序表示这些字段的六个整数年月日期小时分钟秒。 // This will NOT be the intended Date of 26 September 2016 // with 0 hours, 0 minutes, and 0 seconds because both the // month and year parameters are NOT appropriate. final Date naiveDate new Date(2016, 9, 26, 0, 0, 0); printDate(new Date(2016, 9, 26, 0, 0, 0), naiveDate); 运行上述代码的输出与前面显示的“控制”案例没有相同的月份10月而不是9月或年份不是2016年。 new Date(2016, 9, 26, 0, 0, 0) - Thu Oct 26 00:00:00 MDT 3916本月比我们预期的要晚10月而不是9月因为month参数是从零开始的参数一月由0表示九月由8而不是9表示。这是处理以下问题的最简单方法之一从零开始的月份对Date构造函数的更可读的调用是为月份使用适当的java.util.Calendar字段。 下一个示例演示如何使用Calendar.SEPTEMBER进行此操作。 // This will NOT be the intended Date of 26 September 2016 // with 0 hours, 0 minutes, and 0 seconds because the // year parameter is not correct. final Date naiveDate new Date(2016, Calendar.SEPTEMBER, 26, 0, 0, 0); printDate(new Date(2016, Calendar.SEPTEMBER, 26, 0, 0, 0), naiveDate); 刚刚列出的代码段修复了月份规范但是年份仍然不正确如下面显示的关联输出所示。 new Date(2016, Calendar.SEPTEMBER, 26, 0, 0, 0) - Tue Sep 26 00:00:00 MDT 3916这一年仍然相距1900年而不是2016年为3916年。 这是因为决定将六整数Date构造函数的第一个整数参数指定为年份减去1900年。因此提供“ 2016”作为第一个参数将年份指定为2016 1900 3916。要解决此问题我们需要改为提供1162016-1900作为构造函数的第一个int参数。 为了使对此感到惊讶的普通人更容易理解我喜欢将其字面编码为2016-1900如下面的代码清单所示。 final Date date new Date(2016-1900, Calendar.SEPTEMBER, 26, 0, 0, 0); printDate(new Date(2016-1900, Calendar.SEPTEMBER, 26, 0, 0, 0), date); 在使用从零开始的月份并将预期年份表示为当前年份减去1900的情况下正确地实例化了Date 如在下一个输出列表中所示。 new Date(2016-1900, Calendar.SEPTEMBER, 26, 0, 0, 0) - Mon Sep 26 00:00:00 MDT 2016Date的Javadoc文档确实描述了这些细微差别但这提醒人们最好使用清晰可理解的API不需要注释中描述的细微差别。 Dateintintintintintint构造函数的Javadoc确实宣告年需要减去1900并且月份由0到11之间的整数表示。它还描述了为什么此六整数构造函数已弃用 “从JDK版本1.1开始由Calendar.set年 1900月日期小时分钟秒或GregorianCalendar年 1900月日期小时分钟秒代替。” 相似的六整数GregorianCalendarintintintintintint构造函数没有被弃用尽管它仍然期望从零开始的month参数但是当证明证明时它不希望它减去1900的实际年份。年参数。 当使用适当的Calendar month常数指定月份时当可以在年份中传递2016年并且可以在月份中传递Calendar.SEPTEMBER时API调用将更具可读性。 我现在很少直接使用Date类以至于我忘记了它的细微差别并且在极少数场合让我再次使用Date时必须重新学习它们。 因此我将这些有关Date观察留给我自己。 如果使用Java 8请使用Java 8 Date / Time API。 如果使用Java之前的Java 8版本请使用Joda-Time或其他改进的Java库。 如果无法使用Java 8或第三方库请尽可能使用Calendar而不是Date 尤其是用于实例化。 如果使用Date反正实例化Date使用任一SimpleDateFormat.parse(String)的方法或使用Date(long)来实例化Date因为历元零基于毫秒。 如果使用Date构造函数分别接受表示日期/时间分量的多个整数请使用适当的Calendar month字段使API调用更具可读性并考虑编写一个简单的构造器来“包装”对六整数构造函数的调用。 通过使用他人的API我们可以学到很多有关什么使API有用且易于学习以及使API更加难以学习的知识。 希望这些经验教训将有助于我们编写自己的API。 这篇文章的重点是Date(int, int, int, int, int, int)构造函数它提出了一些问题这些问题导致API不够理想。 相同类型的多个参数可以轻松地乱序提供参数而与提供年份和月份有关的“不自然”规则给客户端开发人员增加了负担使他们不得不阅读Javadoc来理解这些不太明显的内容规则。 翻译自: https://www.javacodegeeks.com/2016/09/painful-reminder-java-date-nuances.html学习java很痛苦
http://www.zqtcl.cn/news/121678/

相关文章:

  • 东莞网站建设免费服务器营销是什么意思
  • 内容管理网站建设方案阿里云wordpress搭建
  • 静安微信手机网站制作中企动力做网站费用
  • 北京网站建设交易凡客诚品特色
  • 免费建设旅游网站学校网站开发方案
  • 专门做网站的科技公司青岛做网站哪家专业
  • 佛山网站优化效果珠海婚恋网站建设市场分析
  • 贵阳建设公司网站个人网站必须备案
  • 万网网站备案域客式单页网站能申请域名吗
  • 网站建设公司哪家好 都来磐石网络建设银行网络平台
  • 微营销网站建设免费建设网站教程
  • c .net怎么做网站如何进行账号推广
  • 网站建设丨金手指谷哥12怎么看网站做的外链
  • 一个空间建多个网站青海培训网站建设公司
  • 网站国际联网备案大型外贸网站建设
  • 淮南 小学网站建设软件技术主要学什么就业前景
  • 微网站建设网站洛阳制作网站公司哪家好
  • 凤翔做网站wordpress分销商城
  • 网站产品网页设计模板企业网站优化关键词
  • 电商网站建设去迅法网网站管理与建设试题
  • 做网站必须知道的问题wordpress制作论坛
  • 怎样在建设部网站查资质证书网页设计有哪些岗位
  • 安徽中色十二冶金建设有限公司网站cad制图初学入门
  • 开发网站监控工具网上开店怎么找货源
  • 标准网站建设报价单私密浏览器直播
  • wordpress焦点图网站seo分析
  • 域名申请哪个网站好江西有色建设集团有限公司网站
  • 新乡市做网站的公司百度推广开户费用多少
  • 免费建网站哪个平台好php 未定义函数wordpress
  • 个人网站 域名选择郑州那家做网站便宜