程序如下:
import datetime
# 获取当前时间
current_time = datetimedatetimeutcnow() + datetimetimedelta(hours=8)
# 转换时区
new_timezone = datetimetimezone(datetimetimedelta(hours=-5))
converted_time = current_timeastimezone(new_timezone)
# 输出转换后的时间
print('UTC+8时间:', current_time)
print('UTC-5时间:', converted_time)
你好,这两种写法是不等价的setFullYear 的返回值并非Date
代码段1中最后输出的是DateToString()
代码段2 setFullYear函数返回值 返回一个整数,值为date对象距1970年1月1日午夜之间的毫秒数(时间戳)
所以js代码的编写有时候是不能图省事的,原生api有部分和平常人们的理解不一样
就譬如setMonth 的参数并不是输入1就是设置到1月份一样,它的参数是0-11
以下是Date 的api 相关资料,仅供参考
Date构造函数
// 当前时间
// Tue Sep 11 2012 15:37:46 GMT+0800 (中国标准时间)
new Date();
// Fri Jan 02 1970 08:00:00 GMT+0800 (中国标准时间)
new Date(3600 24 1000);
除了构造函数外,DateUTC()也用于构造日期,但是并不返回Date,而是返回从1970-01-01开始的毫秒数,比如:
// 1328054400100, 即2012-01-01 00:00:00 0100
DateUTC(2012, 1, 1, 0, 0, 0, 100);
需要注意的是,Date()函数返回日期字符串,比如
// date是字符串:'Tue Sep 11 2012 15:34:48 GMT+0800 (中国标准时间)'
var date = Date();
字符串转日期
Dateparse(string)方法并不是返回Date,而是返回整数
// 1120752000000, 即2005-07-08
Dateparse("Jul 8, 2005");
Dateparse("2005-07-08");
Dateparse("2005/07/08");
日期转字符串
toString(); // Tue Sep 11 2012 15:09:01 GMT+0800
toTimeString(); // 15:09:34 GMT+0800
toDateString(); // Tue Sep 11 2012
toGMTString(); // Tue, 11 Sep 2012 07:10:05 GMT
toUTCString(); // Tue, 11 Sep 2012 07:10:17 GMT
toLocaleString(); // 2012年9月11日 15:10:31
toLocaleTimeString(); // 15:10:45
toLocaleDateString(); // 2012年9月11日
Get系列方法
Date提供了一系列Get和Set方法,可以获取和设置年份、月份、日期、小时等等信息,并且提供了本地时间和UTC时间两套方案。本地时间方法如下:
var date = new Date();
dategetDate(); // 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
dategetDay(); // 从 Date 对象返回一周中的某一天 (0 ~ 6)。
dategetMonth(); // 从 Date 对象返回月份 (0 ~ 11)。
dategetFullYear(); // 从 Date 对象以四位数字返回年份。不用使用getYear()。
dategetHours(); // 返回 Date 对象的小时 (0 ~ 23)。
dategetMinutes(); // 返回 Date 对象的分钟 (0 ~ 59)。
dategetSeconds(); // 返回 Date 对象的秒数 (0 ~ 59)。
dategetMilliseconds(); //返回 Date 对象的毫秒(0 ~ 999)。
dategetTime()方法返回从1970-01-01开始到现在的毫秒数
dategetTime(); // 返回1970年1月1日至今的毫秒数。
Get系列获取本地时间的方法和获取UTC时间的方法一一对应,如dategetUTCDate();
Set系列方法
Set系列方法和Get系列方法一一对应,如:
datesetDate(24);
datesetUTCDate(24);
datesetTime(time)方法以毫秒数设置Date对象,和new Date(time)的作用一样。
Date之间的计算
Date之间的计算实际上是毫秒数的计算,加法除外,比如
// Tue Sep 11 2012 15:40:45 GMT+0800 (中国标准时间)
var d = new Date();
// Tue Sep 11 2012 15:40:50 GMT+0800 (中国标准时间)
var b = new Date();
// -5781
consolelog(d - b);
// 'Tue Sep 11 2012 15:40:45 GMT+0800 (中国标准时间)Tue Sep 11 2012 15:40:50 GMT+0800 (中国标准时间)'
consolelog(d + b);
// 0999999995709353
consolelog(d / b);
// 18153499959824195e+24
consolelog(d b);
Date到字符串的自定义格式转换
JavaScript并没有提供像Ruby的strftime()这样的方法,如果需要某种格式的日期字符串只能自己实现。比如下面方法实现将日期转化成yyyy-mm-dd形式的字符串。
DateprototypetoHyphenDateString = function() {
var year = thisgetFullYear();
var month = thisgetMonth() + 1;
var date = thisgetDate();
if (month < 10) {
month = "0" + month;
}
if (date < 10) {
date = "0" + date;
}
return year + "-" + month + "-" + date;
};
var date = new Date();
// 输出2012-09-11
consolelog(datetoHyphenDateString());
你取到的是服务器在response里面返回的日期!
如果你连接的服务器bjtimecn没有在response响应里给你设置Date,则会取日期初始化的时间,也就是UTC0或者GMT0。
你在var d = new Date(dateStr);之前把dateStr给alert出来看看是否正确?
看一下java的当前时间:
在浏览器上输出javascript的当前时间:
对比一下,发现java的显示用了CST时间,javascprit用了GMT时间,那么二者有什么区别呢
GMT(Greenwich Mean Time)代表格林尼治标准时间,这个大家普通都知道,
而CST却同时可以代表如下 4 个不同的时区,与GMT时间的关系如下:
有时还会看到 2020-09-25T 05:35:00968 Z 这种时间,其实这种时间格式就是一个标准时间(其中T是分隔符,Z表示这个时间是标准时间),如果转化为当地时间(北京),要按照时区划分+8小时。
以上就是关于我想javascript写一个函数返回现在时间到当天8:30地时间差,返回的是秒数,不知道怎么写全部的内容,包括:我想javascript写一个函数返回现在时间到当天8:30地时间差,返回的是秒数,不知道怎么写、求一段JAVASCRIPT的时间显示代码,、查询日期库文档,写代码,完成当前时间从UTC+8到UTC-5的转换等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)