近期写一个页面。上面要展示下日期。

在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的更多相关文章

  1. java基础63 JavaScript中的Number、Math、String、Date对象(网页知识)

    本文知识点(目录): 1.Number对象    2.Math对象    3.String对象    4.Date对象 (日历例子) 1.Number对象 1.1.Number对象的创建方式 方式1: ...

  2. 【JavaScript】JS将Java的Timestamp转为Date类型

    遇到一个小需求,由于要填充日期插件里的数据,前台要把java后台传来的Date类型的数据转成YYYY-MM-DD格式的时间数据.通过json传输,Java的Date类型的数据自动转成了时间戳,例如 “ ...

  3. java web中日期Date类型在页面中格式化显示的三种方式

    一般我们经常需要在将服务器端的Date类型,传到页面进行显示,这就涉及到一个如何格式化显示Date类型的问题,一般我们有三种方式进行: 1)在服务端使用SimpleDateFormat等类格式化成字符 ...

  4. JavaScript Date日期对象以及日期格式化方法

    前言 Date对象是javascript语言中内置的数据类型,用于提供日期和时间的操作接口.Date对象是在早期java中的java.util.Date类基础上创建的,为此,Date类型使用自UTC1 ...

  5. JavaScript—Date对象详情

    Date对象概述 javaScript 提供了 Date 类型来处理时间和日期.Date 对象内置一系列获取和设置日期时间信息的方法.(不是内置对象,需要自己new) javaScript 中的 Da ...

  6. JAVA基础知识xml,date

    虽然说看文档最好是看官方原来的文档,但是呢,下面是我看别的人的总结,算做抛砖引玉吧,如果有不对的,我会在后期给更正或者自己来写一篇 1,JAVA中对xml的操作,包括schema,dtd等相关知识:标 ...

  7. JavaScript Date 对象

    JavaScript Date 对象 Date 对象 Date 对象用于处理日期与实际. 创建 Date 对象: new Date(). 以上四种方法同样可以创建 Date 对象: var d = n ...

  8. JavaScript Date对象 日期获取函数

    JavaScript Date对象使用小例子: 运行结果: 总结: 1.尽管我们认为12月是第12个月份,但是JavaScript从0开始计算月份,所以月份11表示12月: 2.nowDate.set ...

  9. [转]javascript Date format(js日期格式化)

    方法一:这个很不错,好像是 csdn 的 Meizz 写的: // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q)  ...

随机推荐

  1. c# 课堂总结6 --集合与结构体

    一.集合 使用时必须添加 System.Collections 集合与数组的区别: 1:数组声明了它容纳的元素的类型,而集合不声明.这是由于集合以object形式来存储它们的元素.初始化时集合无需定义 ...

  2. m2eclipse简单使用,创建Maven项目 ,运行mvn命令(转)

    前面介绍了如何安装m2eclipse,现在,我们使用m2ecilpse导入Hello World项目. 选择菜单项File,然后选择Import,我们会看到一个Import对话框,在该对话框中选择Ge ...

  3. [置顶] 编程模仿boost::function和boost::bind

    boost::function和boost::bind结合使用是非常强大的,他可以将成员函数和非成员函数绑定对一个对象上,实现了类似C#的委托机制.委托在许多时候可以替代C++里面的继承,实现对象解耦 ...

  4. poj 3767 I Wanna Go Home

    题意:n个点(从1-n编号) m条边 下面m行 u v dis 表示双向边u v的距离 n个点表示 每个点被势力1或2占据 这里保证1 城市由势力1占据,2城市由势力2占据 思路: 求2遍spfa() ...

  5. Makefile学习(二)[第二版]

    复杂实例 #演示样例1:在上一个演示样例的基础上再添加一个可运行文件03test[改动之处已标红] .PHONY: clean all CC = gcc CFLAGS = -Wall -g BIN = ...

  6. ASP.NET 4.5 Bundle组件(捆绑、缩小静态文件)

    阅读目录: 1.开篇介绍 2.System.Web.Optimization 组件 3.System.Web.Optimization 组件基本原理 4.扩展自定义类型静态文件 1]开篇介绍 这篇文章 ...

  7. HDU 472 Hamming Distance (随机数)

    Hamming Distance Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) To ...

  8. sharepoint 2013 根据网站模版创建网站,并赋值网站权限 create a site by custom site template

    通过程序,根据网站模版,创建新的网站 private void CreateSiteBySiteTemplate() { SPSecurity.RunWithElevatedPrivileges(de ...

  9. MinGW 介绍

    SDL新手教程(一):3.MinGW 下的安装与设置 作者:龙飞 3.1:MinGW 是什么? MinGW 提供了一套简单方便的Windows下的基于GCC 程序开发环境.MinGW 收集了一系列免费 ...

  10. [hadoop系列]Pig的安装和简单演示样例

    inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish ).(来源:http://blog.csdn.net/inkfish) Pig是Yaho ...