如何使用Javascript获取澳大利亚时区? (不是JQuery)

时间:2015-05-01 10:02:13

标签: javascript time timezone utc

我正在努力帮助一位朋友获得澳大利亚时区的大学作业并找到困难。 有人能指出我们正确的方向吗? 谢谢!

#include <iostream>

void print (int n) {
    printf("the value is: %d\n", n);
}

template <int *n>
void myWrapper() {
    print(*n);
}

void myCall(void (*CALLBACK)(void)) {
    CALLBACK();
}

int a = 1; int aa[4] = {2,3,4,5}; 

int main()
{
    myCall(myWrapper<&a>); // prints 1
    myCall(myWrapper<aa>); // prints 2
    /* the following line gives error: no matches converting function 'myWrapper' to type 'void (*)()' 
       note: candidate is: template<int* n> void myWrapper() 
    */
    myCall(myWrapper<aa+1>); 
}

3 个答案:

答案 0 :(得分:2)

您只需使用

let AuDate = new Date().toLocaleString("en-US", {timeZone: "Australia/Sydney"});

答案 1 :(得分:0)

我想我明白你的意思。但在此之前,我想提出2分:

1:应该在某处调用Timezone()函数。

<script>
  function Timezone() {
    var x = new Date();
    var currentTimeZoneOffsetInHours = x.getTimezoneOffset() / 60;
    document.getElementById("add").innerHTML = currentTimeZoneOffsetInHours;
  }
  Timezone();
</script>

2:惯例通常是方法以小写字母开头。也许updateTimezone()会更合适。

现在可以通过两种方式解释您的问题:

  • 您希望时区的偏移量以小时为单位,为此,上述代码应该可以正常工作。 getTimezoneOffset()是要走的路。
  • 您想要一个人类可读的时区名称,正如您在我的网站上看到的currentmillis.com(在我的情况下,它表示 GTB夏季)。您可以查看我的源代码,看看我是如何实现这一目的的:
var s = date.toString();
var iOfP = s.indexOf('('); // index of parenthesis
if (iOfP < 0) {
  s = s.substring(s.lastIndexOf(' ') + 1);
} else {
  s = s.substring(iOfP+1, s.length-1);
}
if (s.length > 4 && s.lastIndexOf(" Time") == s.length-5){
  s = s.substring(0, s.length-5);
}
timezoneM.innerHTML = s;

这是有效的,因为当您在日期调用toString()时,结果应包含您的时区的全名:w3schools.com/jsref/jsref_tostring_date.asp

答案 2 :(得分:0)

通过查看您的代码,您似乎正在尝试获取澳大利亚时区的当前日期和时间。假设您想要澳大利亚东部标准时间 (AEST) 并且您想要显示日期在澳大利亚 DD-MM-YYYY 中的显示方式,然后执行以下操作:

var timestamp_UTC = new Date();
var readable_timestamp_AEST = timestamp_UTC.toLocaleDateString("en-AU", {timeZone: "Australia/Sydney"}).replace(/\//g, "-") + ' ' + somestamp.toLocaleTimeString("en-AU", {timeZone: "Australia/Sydney"});

"en-AU" 是 locales 参数,它告诉 toLocalDateString 将日期显示为 DD-MM-YYYY,第二个参数用于 options(时区只是一个这种可能的选择)。有关 toLocalDateString 函数的信息可以在此处找到 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString

这里有一些关于 Date() 函数的信息 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

希望这可以解决从 Date() 函数获取时间和日期的一些问题。