听说用了YYYY-MM-dd的程序员,前些天都在加班改Bug
大叔我北漂十多年,一直没有摇到北京的车牌,每周都需要通过一个 APP 办理“进京证”,当我办理 19 年最后一次进京证的时候,APP 给出了这样的提示:
日期显示:“2020-12-31”!
车友群里面立马有人不淡定了,虽然大家都猜出来,这应该是 APP 的 Bug,但还是难免要吐槽一下。
那么产生这个 Bug 的原因是什么呢?其实很简单,就是 把 yyyy-MM-dd 写成了 YYYY-MM-dd 。
如果对时间处理不那么熟悉的程序员看到这里,会认为 yyyy 和 YYYY 有什么区别么?在代码里面敲一下,他们的结果也都是相同的啊!
public class DateTest { public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); calendar.set(2019, Calendar.AUGUST, 31); Date strDate = calendar.getTime(); DateFormat formatUpperCase = new SimpleDateFormat("yyyy-MM-dd"); System.out.println("2019-08-31 to yyyy-MM-dd: " + formatUpperCase.format(strDate)); formatUpperCase = new SimpleDateFormat("YYYY-MM-dd"); System.out.println("2019-08-31 to YYYY-MM-dd: " + formatUpperCase.format(strDate)); } }
运行结果为:
2019-08-31 to yyyy-MM-dd: 2019-08-31
2019-08-31 to YYYY-MM-dd: 2019-08-31
但是如果我们把日期改成 2019-12-31 再试试呢?结果产生了差异:
2019-12-31 to yyyy-MM-dd: 2019-12-31
2019-12-31 to YYYY-MM-dd: 2020-12-31
那么产生这个问题的原因是什么呢?其实很简单:Y 和 y 实际上代表了不同的含义
。
- y:year-of-era;正正经经的年;
- Y:week-based-year;只要本周跨年,那么这周就算入下一年;
这是开发过程中的一个小细节,一不小心就掉到坑里了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Javascript将字符串日期格式化为yyyy-mm-dd的方法
这篇文章主要介绍的是利用Javascript将字符串日期格式化为yyyy-mm-dd的方法,下面话不多说了,参考如下代码 function formatDate(date) { var d = new Date(date), month = '' + (d.getMonth() + 1), day = '' + d.getDate(), year = d.getFullYear(); if (month.length < 2) month = '0' + month; if (day.lengt
-
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
在web开发中,我们经常需要用js将时间戳转yyyy-MM-dd HH-mm-ss类似的格式,这样才适合我们的观感,那么我们该如何在js中将时间戳转换成这种格式呢?其实很简单,我们开发一个时间戳工具类,如下: 第一种:最简单的是一个js时间格式的转换函数方法 function formatDateTime(inputTime) { var date = new Date(inputTime); var y = date.getFullYear(); var m = date.getMonth()
-
正则表达式实现将MM/DD/YYYY格式的日期转换为YYYY-MM-DD格式
本文实例讲述了正则表达式实现将MM/DD/YYYY格式的日期转换为YYYY-MM-DD格式的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <html> <head><title>正则表达式</title></head> <body> <a href="./">返回列表</a> <form action="<? echo $PHP_SELF; ?&
-
js实现把时间戳转换为yyyy-MM-dd hh:mm 格式(es6语法)
如下所示: function formatDate(date,fmt) { if(/(y+)/.test(fmt)){ fmt = fmt.replace(RegExp.$1,(date.getFullYear()+'').substr(4-RegExp.$1.length)); } let o = { 'M+':date.getMonth() + 1, 'd+':date.getDate(), 'h+':date.getHours(), 'm+':date.getMinutes(), 's+'
-
js字符串日期yyyy-MM-dd转化为date示例代码
最近遇到一个问题,就是获取表单中的日期往后台通过json方式传的时候,遇到Date.parse(str)函数在ff下报错: NAN 找了些资料,发现是由于Date.parse()函数对日期格式有要求:详细参考 Date.parse函数 对于js操作日期: 创建一个日期对象: var objDate=new Date([arguments list]); 参数形式有以下5种: 复制代码 代码如下: view plainnew Date("month dd,yyyy hh:mm:ss");
-
JS验证日期的格式YYYY-mm-dd 具体实现
复制代码 代码如下: function checkInputDate(obj){ var strDate=obj.value; var re =/^(\d{4})-(\d{2})-(\d{2})$/; if(re.test(strDate))//判断日期格式符合YYYY-MM-DD标准 { var dateElement=new Date(RegExp.$1,parseInt(RegExp.$2,10)-1,RegExp.$3); if(!(
-
Winform之TextBox输入日期格式验证yyyy-mm-dd
复制代码 代码如下: private void button1_Click(object sender, EventArgs e) { string s = textBox1.Text.ToString(); bool b = ValidateDataTime(s); string rs = ""; if (b) { rs = &qu
-
匹配yyyy-mm-dd日期格式的的正则表达式
其实我也很头疼正则表达式,百度了一些资料,总结一下,这里留个备份吧. 要考虑的问题:合法的日期是多少:每个月的天数不一样:闰年的问题.... 1.合法的日期:MSDN上规定--在公元(基督纪元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之间的日期和时间 查看http://msdn.microsoft.com/zh-cn/library/system.datetime(VS.80).aspx 2.闰年的概念:百
-
听说用了YYYY-MM-dd的程序员,前些天都在加班改Bug
大叔我北漂十多年,一直没有摇到北京的车牌,每周都需要通过一个 APP 办理"进京证",当我办理 19 年最后一次进京证的时候,APP 给出了这样的提示: 日期显示:"2020-12-31"! 车友群里面立马有人不淡定了,虽然大家都猜出来,这应该是 APP 的 Bug,但还是难免要吐槽一下. 那么产生这个 Bug 的原因是什么呢?其实很简单,就是 把 yyyy-MM-dd 写成了 YYYY-MM-dd . 如果对时间处理不那么熟悉的程序员看到这里,会认为 yyyy 和
-
input框中自动展示当前日期yyyy/mm/dd的实现方法
直接上代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>input框中自动展示当前日期</title> </head> <body> <input type="text" id="input"> <script>
-
程序员应该投资的10件事
1. 关注你的健康 毫无疑问,软件开发是一项最需要久坐的工作之一,每天在电脑前要坐 8 到 16 个小时,中间几乎没有休息,这就很容易长肉.而肥胖很很可能会引起其它的疾病,心脏病就是其中一种严重的疾病.当然,你可以通过一些锻炼避免它,比如花点儿钱去办一张健身卡. 长时间不符合人体工程学的打字姿势,会造成软件开发人员重复性的肌肉损伤,比如腕管综合征.你应该每隔几个小时的打字后就活动伸展一下手腕,防止这样的损伤,或者选择买带有手腕保护功能的鼠标和键盘.总盯着屏幕也会给你的眼睛带来压力,这就是为什么
-
在职程序员为啥比不过在野程序员
在职程序员为啥比不过在野程序员1.在职程序员必须天天完成公司没完没了的 毫无技术含量的任务,在野的不需要.2.在职程序员是为了谋生而写程序,拿的钱少的只能抽烟5块钱以下的香烟.在野的要么是学生要么家里有钱,自然更加有灵感3.在职程序员一般单身,在野的一般有2个以上女朋友.成功男人背后都有个女人,4.在职程序员接个私单左藏右藏怕被公司知道.在野的接业务那叫soho一族.5.成为在职程序员之前天天学习技术,上网学习技术文章.在职后除了看boss的任务邮件.连英文manual都看不懂了.6.成为在职程
-
程序员的八种境界,你在哪一境?
如果将程序员分为本文的8种类型,你会是哪一种呢? 在求职的时候,相信很多人都被问过这样的问题,"你对自己未来5年的职业规划是怎么样的?" 每当我被问起这个问题的时候,我的脑海里总是浮现出TwistedSister乐队1984年拍摄的一段视频里的这个场景:一位老师对着他的学生大喊,"我想要你告诉我,不,是告诉全班同学,你究竟想要过怎样的生活?" 注:TwistedSister是一支源自美国纽约的摇滚乐队,成立于1970年代早期.后来经过将近10年的奋斗,他们在80年代
-
腾讯QQ php程序员面试题目整理
说在前面: 1.以下题目,除了编程任务外其他都需要写在给你提供的草纸上.纸张是珍贵的地球资源,请节约使用.编程任务在有相应的环境时,会要求上机书写,实在没有条件,就只能写在草纸上了. 2.时间: 基础任务+进阶任务+设计任务 = 90分钟 编程任务 = 60分钟 基础任务: 1.请列举你能想到的UNIX信号,并说明信号用途. 2.请列举.你能想到的所有的字符串查找算法,并加注释简单说明. 3.有一个IP地址(192.168.0.1),请写出其32位无符号整数形式. 4.写出.你能想到的所有HTT
-
五个PHP程序员工具
Phing - 一个项目构建系统 Phing 是一个基于Apache ANT 的项目构建系统.它的名字是一个拗口的语句首字母缩写 - PHing Is Not GNU make .Phing可以做传统构建系统比如 GNU make 能做的任何事情,同时没有陡峭的学习曲线. 在phing(以及其他的构建系统)背后的思想是评估一系列相关性,然后执行一系列PHP类去正确的安装和配置一个应用系统.构建过程用一个简单的XML配置文件控制.Out of the box, phing内置可以执行一系列替换(比
-
程序员必备的10大健康装备! 我们要工作更要健康!
前言 做为程序员,为了实现理想而奋斗不懈,每天对着电脑辐射坐在工位上拼搏8小时甚至更久,这种如同机器旁边的机器般的工作对于健康的损耗何其之大?再这么下去,还真得应了:"职务不高,工资不高,血压血脂血糖高:政治不突出,业务不突出,腰椎盘突出"这种亚健康状态,最可怕的是技术人员平均寿命都有点惊悚,就怕最后"出师未捷身先死,长使英雄泪满襟".是时候呼吁一下健康的问题了!废话不说了,进入正题吧.本次的带来的是:程序员必备的10大健康装备,Let's go! 装备1:沙袋 &
-
程序员编程知识经验总结
不知道你有没有听说过所谓编程知识也是有半衰期的?这个半衰期限很多人普遍认为是5年.也就是说,5年以后你现在所学的知识将会有一半被淘汰. 感觉听上去也算合情合理.毕竟,新的编程语言和技术在源源不断地面世.但是我要告诉你,编程语言比很多人想得都要"长寿". 语法不是难点 对于Java程序员,学习Python就像说英语的去学习法语.当然这两者是毫无关联的.但是相同的是,都需要学习新的语法.语法只是表面上的不同,所有的核心概念都是相通的. 无论你换哪种编程语言去写程序,我们都可以借鉴其相似的类
随机推荐
- 《CSS3实战》笔记--渐变设计(三)
- JSP 多条SQL语句同时执行的方法
- iOS开发中如何实现一个平滑的颜色过渡
- JavaScript的变量作用域深入理解
- jquery获取ASP.NET服务器端控件dropdownlist和radiobuttonlist生成客户端HTML标签后的value和text值
- 对象失去焦点时自己动提交数据的实现代码
- PHP快速推送微信模板消息
- js判断登录与否并确定跳转页面的方法
- javascript中的一些注意事项 更新中
- 分享一个入门级可控多线程shell脚本代码
- sql server定时作业调用Kettle job出错的快速解决方法
- Sqlserver 存储过程中结合事务的代码
- Jquery修改image的src属性,图片不加载问题的解决方法
- Jquery Ajax.ashx 高效分页实现代码
- js获取页面description的方法
- java集合继承关系图分享
- Android编程基础之简单Button事件响应综合提示控件Toast应用示例
- java经典问题:连个字符串互为回环变位
- 详解Android跨进程IPC通信AIDL机制原理
- python做量化投资系列之比特币初始配置