java Date 和 javascript Date
近期写一个页面。上面要展示下日期。
在Java中生成了Date。然后将这个Date通过velocity送入vm模板其中
代码例如以下:
var dates = new Date("$!{pp.date}");
var dateStr = date2String(dates);
当中 date2String是这种。函数參考
http://www.w3school.com.cn/jsref/jsref_obj_date.asp
function date2String(date) {
var year = date.getFullYear();
var month = date.getMonth();
var day = date.getDate();
var hour = date.getHours();
var minute = date.getMinutes();
var second = date.getSeconds();
var monthStr = (month <= 9 ?
"0":"") + month;
var dayStr = (day <= 9 ?
"0":"") + day;
var hourStr = (hour <= 9 ?
"0":"") + hour;
var minuteStr = (minute <= 9 ? "0":"") + minute;
var secondStr = (second <= 9 ?
"0":"") + second;
return ""+year+"-"+monthStr+"-"+dayStr+" "+hourStr+":"+minuteStr+":"+secondStr;
}
结果解析发现时间全乱了。
首先是月份不正确。这个是一个自己粗心的bug,由于getMonth得到的结果是0-11的,因此须要在后面+1,这个比較easy搞定
后面的并没有由于少1的原因而变形。
如今有两种方案:其一。直接传递一个Java改动好格式后的字符串给js,其二想想别的办法。
本来想偷懒的就用其一吧。可是想了想还是其二更能偷懒,并且还能学到新东西。用其二吧。
想了想直接将Date对象传递过来可能在实现上确实比較诡异。Date应该都是从1970年開始时的时间差,因此用一个long做构造函数的參数应该是有的。
当然在上面的
中文w3c的网页上仅仅给出了一种构造方法,即取得当前的时间。
连前面的直接赋值date的都没有事,因此认为应该有别的构造函数,因此选择再找找看。查看下Date的构造函数:
http://www.tutorialspoint.com/javascript/javascript_date_object.htm
用
new Date(milliseconds)
靠谱一点,毕竟是存放在底层的数据。
因此改成:
var dates = new Date($!{pp.date.getTime()});
靠谱多啦。
搞定,看看原来的为啥这么不靠谱。
原来传递进去的Date是:
date=Sun Dec 14 09:40:11 CST 2014
date=Sat Dec 13 23:54:00 CST 2014
可是:
变成了 2014-12-14 23:40:11
和 2014-12-14 13:54:00
都是添加了14个小时!
打印后发现:
dates=Sun Dec 14 2014 13:54:00 GMT+0800
dates=Sun Dec 14 2014 23:40:11 GMT+0800
那么就是时区的问题了!
依据 Wiki 上面的CST :
http://zh.wikipedia.org/wiki/CST
除了表示中国。还能够表示澳洲和美国中部时间。应该是美国中部时间比較靠谱。咱们在东8区, 那么美国中部应该是在西6区。
查看下果不其然。
因此js是把CST当成了美国中部时间(Central Standard Time (North America))而不是(China
Standard Time)。
从而导致相应的错误。折腾了一下还是能找到原因的哈哈。
加油。
======
PS。还是要细心啊,不能老出问题了才发现问题然后去补救。測试的时候一定要细心。
java Date 和 javascript Date的更多相关文章
- java基础63 JavaScript中的Number、Math、String、Date对象(网页知识)
本文知识点(目录): 1.Number对象 2.Math对象 3.String对象 4.Date对象 (日历例子) 1.Number对象 1.1.Number对象的创建方式 方式1: ...
- 【JavaScript】JS将Java的Timestamp转为Date类型
遇到一个小需求,由于要填充日期插件里的数据,前台要把java后台传来的Date类型的数据转成YYYY-MM-DD格式的时间数据.通过json传输,Java的Date类型的数据自动转成了时间戳,例如 “ ...
- java web中日期Date类型在页面中格式化显示的三种方式
一般我们经常需要在将服务器端的Date类型,传到页面进行显示,这就涉及到一个如何格式化显示Date类型的问题,一般我们有三种方式进行: 1)在服务端使用SimpleDateFormat等类格式化成字符 ...
- JavaScript Date日期对象以及日期格式化方法
前言 Date对象是javascript语言中内置的数据类型,用于提供日期和时间的操作接口.Date对象是在早期java中的java.util.Date类基础上创建的,为此,Date类型使用自UTC1 ...
- JavaScript—Date对象详情
Date对象概述 javaScript 提供了 Date 类型来处理时间和日期.Date 对象内置一系列获取和设置日期时间信息的方法.(不是内置对象,需要自己new) javaScript 中的 Da ...
- JAVA基础知识xml,date
虽然说看文档最好是看官方原来的文档,但是呢,下面是我看别的人的总结,算做抛砖引玉吧,如果有不对的,我会在后期给更正或者自己来写一篇 1,JAVA中对xml的操作,包括schema,dtd等相关知识:标 ...
- JavaScript Date 对象
JavaScript Date 对象 Date 对象 Date 对象用于处理日期与实际. 创建 Date 对象: new Date(). 以上四种方法同样可以创建 Date 对象: var d = n ...
- JavaScript Date对象 日期获取函数
JavaScript Date对象使用小例子: 运行结果: 总结: 1.尽管我们认为12月是第12个月份,但是JavaScript从0开始计算月份,所以月份11表示12月: 2.nowDate.set ...
- [转]javascript Date format(js日期格式化)
方法一:这个很不错,好像是 csdn 的 Meizz 写的: // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) ...
随机推荐
- Qt 多线程与数据库操作需要注意的几点问题
源地址:http://blog.csdn.net/goldenhawking/article/details/10811409 彻底抛弃MFC, 全面应用Qt 已经不少时间了.除了自己看书按步就班做了 ...
- Jquery moblie中的分栏布局
大家好,很高兴又与大家见面了,今天我要给大家展示的是自己对jquery moblie中网格布局的理解.可能不是尽善尽美,希望大家多多体谅! 在jquery moblie中有两种布局,一种是表格布局( ...
- VS2008 Project : error PRJ0019: 某个工具从以下位置返回了错误代码: "正在执行生成后事件..."解决方案
右键工程属性 -> 配置属性 -> 生成事件 ->生成后事件,命令行中的路径加上双引号,如 copy $(ProjectDir)\export\win32\Debug\$(Proje ...
- 关于java的环境变量的一点总结
配置java环境变量: 一:为了在任意目录下使用java的开发工具javac,所以将javac.exe所在的目录加入到系统路径下, 即:在环境变量的path中加入javac.exe所在的目录.一般放在 ...
- HTTP的请求头标签If-Modified-Since
一直以来没有留意过HTTP请求头的IMS(If-Modified-Since)标签. 最近在分析Squid的access.log日志文件时,发现了一个现象. 就是即使是对同一个文件进行HTTP请求,第 ...
- Linux下基于Erlang的高并发TCP连接压力实验
1.实验环境: 联想小型机: 操作系统:RedHat Enterprise LinuxServer release6.4(Santiago) 内核版本号:Linux server1 2.6.32-35 ...
- PHP - 字符串操作
第8章 字符串处理 学习要点: 1.字符串格式化 2.操作子字符串 3.字符串比较 4.查找替换字符串 5.处理中文字符 在每天的编程工作中,处理.调整以至最后控制字符串是很重要的一部分,一般也认为这 ...
- OC中线程的状态相关
1.线程的状态NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil]; ...
- C#游戏框架uFrame
C#游戏框架uFrame兼谈游戏架构设计 c#语言规范 阅读目录 1.概览 2.基本概念 3.依赖注入 4.Manager of Managers 5.利用UniRX实现响应式编程 6.研究总结 回到 ...
- JSP页面小脚本实现日期比較,Java同理,精简过后的,可能在效率上不太好,有大大能够给优化下就更好了
<% java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd ...