今天写代码的时候发现了一个比较有趣的现象,在之前并没有意识到。

代码如下:

public static List<String> getBetweenDateDatas(Date start, Date end) {List<String> durings = new ArrayList<String>();Calendar tempStart = Calendar.getInstance();tempStart.setTime(start);SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY-MM-dd");Calendar tempEnd = Calendar.getInstance();tempEnd.setTime(end);while (!tempStart.after(tempEnd)) {String dateStr = dateFormat.format(tempStart.getTime());durings.add(dateStr);tempStart.add(Calendar.DAY_OF_YEAR, 1);}return durings;}

比如输入的start为'2017-12-26',end为'2018-01-05'。则会得到这样的结果:

[2017-12-26, 2017-12-27, 2017-12-28, 2017-12-29, 2017-12-30, 2018-12-31, 2018-01-01, 2018-01-02, 2018-01-03, 2018-01-04, 2018-01-05]

但事实上,如果不转化SimpleDateFormat的话,得到的日期是:

[Tue Dec 26 00:00:00 CST 2017, Wed Dec 27 00:00:00 CST 2017, Thu Dec 28 00:00:00 CST 2017, Fri Dec 29 00:00:00 CST 2017, Sat Dec 30 00:00:00 CST 2017, Sun Dec 31 00:00:00 CST 2017, Mon Jan 01 00:00:00 CST 2018, Tue Jan 02 00:00:00 CST 2018, Wed Jan 03 00:00:00 CST 2018, Thu Jan 04 00:00:00 CST 2018, Fri Jan 05 00:00:00 CST 2018]

最终的解决方法是,在某个时刻毫无预兆的突然想到了'yyyy-MM-DD',且经过验证发现,将

SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY-MM-dd");

改为:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

最终得到了正确的输出。

此后查阅文档及集大家之所成,发现了原因(虽然感觉似懂非懂,因为完全不会算week year):

“YYYY format” 是 “ISO week numbering system”
“yyyy format” 是 “Gregorian Calendar”
“YYYY specifies the week of the year (ISO) while yyyy specifies the calendar year (Gregorian)"

总之,正常情况下,如果希望按照日历格式得到每天的日期字符的话,使用'yyyy-MM-dd'没错的了……吧

关于日期格式yyyy-MM-dd和YYYY-MM-dd相关推荐

  1. JS 判断input输入框日期时间格式是否符合YY-MM-DD HH:MM:SS和是否符合实际日期规范方法以及SQL时间日期格式转化存储

    JS 判断input输入框日期时间格式是否符合YY-MM-DD HH:MM:SS和是否符合实际日期规范方法以及SQL时间日期格式转化存储 先获取input文本框内输入值 <p>日 & ...

  2. Oralce中日期格式

    http://www.blogjava.net/zJun/archive/2006/08/14/61808.html Oralce中的to_date()函数用于将字符串转换为日期对象,具体使用格式为: ...

  3. C#中用DateTime的ParseExact方法解析日期时间(excel中使用系统默认的日期格式)

    最近做的项目中服务器是英文的系统,系统需要通过excel的单元格导入日期,excel中的日期格式是系统默认的日期格式,如下图所示 以上日期格式,会跟着操作系统设置的日期格式相同例如我的中文系统的日期格 ...

  4. 日期转化为时间戳,英文的日期转为日期格式

    该文章介绍怎么将中文年月日的日期转为时间戳,英文格式的时间转为中文日期的yyyy-MM-dd格式,然后调用方法再转为时间戳 在项目开发中有用到所以记录下来,转化给日期格式之后转为时间戳 // 中文日期 ...

  5. oracle--day2(单值函数(字符函数,日期函数,转换函数,数字函数),日期格式(yyyy,mm等含义),表示一个日期数据的4种方式,多表查询(连接查询(等值连接,不等值连接,外连接,自连接))

    第三章:单值函数     函数分为:       1.单值函数           1.字符函数           2.日期函数           3.转换函数           4.数字函数 ...

  6. 年月日格式判断-正则表达式 YYYY/MM/DD、YYYY/MM/DD| YY/MM/DD、 ^(^(\d{4}|\d{2})(\-|\/|\.)\d{1,2}\3\d{1,2}$)|(^\d{4}…

    一.简单的日期判断(YYYY/MM/DD): ^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$ 二.演化的日期判断(YYYY/MM/DD| YY/MM/DD): ^(^(\d{4}| ...

  7. java date eee_java将 Date原始格式EEE MMM dd HH:mm:ss Z yyyy转成指定格式

    java将 Date原始格式"EEE MMM dd HH:mm:ss Z yyyy"转成指定格式 //将 Date原始格式"EEE MMM dd HH:mm:ss Z y ...

  8. JavaScript 中如何将日期格式化为 DD/MM/YYY

    在 JavaScript 中要将日期格式化为 dd/mm/yyyy .需要遵循以下步骤: 使用 getDate().getMonth() 和 getFullYear() 方法获取特定日期的日.月和年. ...

  9. mysql 日期格式转换mm/dd_如何将日期格式“dd/mm/yy”转换为“yy/mm/dd”以便插入mysql数据库?...

    当我从格式为"dd/mm/yy"的文件中插入日期格式为"yy/mm/dd"的数据库表时,日期错误: 我得到的不是2019:04:11,而是2011:04:19. ...

  10. android输出日期格式,如何在Android中将“ yyyy-MM-dd'T'HH:mm:ss.SSSXXX”日期格式解析为简单格式?...

    小编典典 如果使用的是Java,则可以SimpeDateFormat与模式一起使用: String date = "2018-01-09T11:11:02.0+03:00"; Si ...

最新文章

  1. kvm--virsh命令行下管理虚拟机
  2. ABAP 在程序中启动后台JOB
  3. my understanding for love
  4. 调整谷歌reCAPTCHA大小 How to resize the Google noCAPTCHA reCAPTCHA
  5. Java原生API操作XML
  6. POJ 1155 TELE【树形DP】
  7. 最新房天下登录接口(RSA)JS逆向分析
  8. 【编程语言之Python】之plt画图尺寸、去白边
  9. qtextedit 默认文案_Qt设置QTextEdit和QLabel的字体颜色 | 学步园
  10. ASP.NET中的回调技术(CallBack)
  11. oracle ora27072,ORA-27072: skgfdisp
  12. linux下搭建apache+mysql+php环境(LAMP)
  13. 让无代理设置参数的软件通过代理服务器联网
  14. java 找出重复的数字
  15. 表示自己从头开始的句子_从头-一切从头开始的句子
  16. 蔡盈芳:企业数字档案馆整体架构及其层次模型研究
  17. 简单了解XHR是什么
  18. Git安装【Windows环境安装配置】详细教程
  19. fcpx插件:Stupid Raisins Review Pop(37个流行评论标题插件)
  20. DayDayUp:计算机技术与软件专业技术资格证书之《系统集成项目管理工程师》证书考试历年真题及其解析之2017年/2018年

热门文章

  1. python写入excel文件保存在哪里_万字长文记录Python读写EXCEL文件常用方法大全
  2. Win10 8265ac 蓝牙丢失的修复[2019.8.13]
  3. 计算机网络知识之URL、IP、子网掩码、端口号
  4. uni-app引入全局css样式
  5. 安卓带步骤的手写签名(附源码)
  6. matlab中interp2的python实现(经matlab测试通过)
  7. android sina 微博表情功能的实现
  8. 航天中认软测/测试实习生
  9. 物联网编程语言_编程语言以学习物联网实施
  10. 网络游戏私服行业现状和反私服的措施