当前位置: 首页 > 知识库问答 >
问题:

在德国,如何将特定日期对象转换为相应的时间?[重复]

柴琦
2023-03-14

假设我有这样一个日期对象:

let dateToConvert = new Date(date_string) // represents certain time like 12th Aug 11PM in India

我想实现的是设计这样一个功能:

getGermanDate(dateToConvert): Date {
   // What should be written here?
}

函数应返回Date对象,该对象是dateToConversion对象中的德国时间。

提前谢谢。

共有2个答案

卫景明
2023-03-14

javascript日期的格式设置包含在许多其他问题中。可以使用带有ToLocalString的时区选项指定特定的时区,或者使用Intl.DateTimeFormat构造函数和格式选项(使用IANA代表性位置指定时区,以应用历史和DST更改)进行更多控制,例如:。

let d = new Date();

// toLocaleString, default format for language de
console.log(d.toLocaleString('de',{timeZone:'Europe/Berlin', timeZoneName: 'long'}));

// DateTimeFormat.format with specific options
let f = new Intl.DateTimeFormat('de', {
  year: 'numeric',
  month: 'short',
  day: 'numeric',
  hour: '2-digit',
  hour12: false,
  minute: '2-digit',
  timeZone: 'Europe/Berlin',
  timeZoneName: 'short'
});
console.log(f.format(d));
邹缪文
2023-03-14

您可以使用原生JavaScript函数进行转换(toLocaleString),也可以使用矩时区(这更灵活)。

对于toLocaleString调用,我还指定了一种德国日期格式(通过将“de de”传递给locale参数,您可以使用任何您想要的locale)。

function getGermanDate(input) {
    return moment.tz(input, "Europe/Berlin");
}

/* Using moment timezone */
let timestamp = "2020-08-12 23:00:00";
let timeIndia = moment.tz(timestamp, "Asia/Kolkata");
let timeGermany = getGermanDate(timeIndia);
console.log("Time (India):", timeIndia.format("YYYY-MM-DD HH:mm"));
console.log("Time (Germany):", timeGermany .format("YYYY-MM-DD HH:mm"));

/* Using native JavaScript */
let dateToConvert = new Date("2020-08-12T23:00:00+0530");

console.log("Time (India, native):", dateToConvert.toLocaleString('en-IN', { timeZone: 'Asia/Kolkata' }));
console.log("Time (Germany, native):", dateToConvert.toLocaleString('de-DE', { timeZone: 'Europe/Berlin' }));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.25/moment-timezone-with-data-10-year-range.js"></script>
 类似资料:
  • 我有一个熊猫列,其中包含时间数据和列数据类型是对象。 如何将列转换为Datatime

  • 我有一个pandas数据框,其中有一列应该表示一个财政季度的结束。格式为“Q1-2009”类型。是否有一种快速的方法将这些字符串转换为时间戳“2009-03-31”? 我发现只有格式“YYYY-QQ”的转换,但没有相反的转换。

  • 我想将时间戳转换为。 这是我到目前为止已经实现的,但是它给了我错误的月份 任何帮助将不胜感激。

  • 问题内容: 我正在获取格式为“ 2009-05-28T16:15:00”的日期时间字符串(我相信这是ISO 8601)。一种可能的选择似乎是使用time.strptime元组的前六个元素并将其传递到datetime构造函数中来解析字符串,例如: 我还没有找到一种“清洁”的方法。有一个吗? 问题答案: 我更喜欢使用dateutil库进行时区处理和一般的可靠日期解析。如果要获得类似ISO 8601的字

  • 问题内容: 我试图将字符串转换为日期时间对象。我从新闻提要中获取的字符串格式如下:“星期四,2014年10月16日美国东部时间01:16:17” 我尝试使用datetime.strptime()进行转换。即 并得到以下错误: 追溯(最近一次通话最近): 文件“”,第1行,位于datetime.strptime(’Thu,16 Oct 2014 01:16:17 EDT’,’%a,%d%b%Y%H: