【问题标题】:Convert string to date and get Day将字符串转换为日期并获取 Day
【发布时间】:2021-07-14 08:09:40
【问题描述】:

如何将字符串日期转换为日期?

我有一个格式为 yyyymmdd 的字符串“20210712”如何将其转换为日期...以及如何获取它的日期。

【问题讨论】:

  • 您想要月份的日期还是星期几?你是如何尝试得到它的?你能告诉我们你的努力吗?
  • 这和nodejs有什么关系?您确定要使用 Java 而不是 JavaScript 的解决方案吗?
  • @deHaar 哪里提到了nodejs?
  • 标签中的@Reporter
  • @SanjeevAV 那么请使用相应的标签,您的问题没有标记为JavaScript,而是Java。这不会增加您在 JavaScript 中获得解决方案的机会。

标签: javascript node.js date-format string-to-datetime


【解决方案1】:

您可以使用 DateTimeFormatter 和 LocalDate 来做到这一点:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
LocalDate date = LocalDate.parse("20210712", formatter);
System.out.println(date);
System.out.println(date.getDayOfWeek());
System.out.println(date.getDayOfMonth());
System.out.println(date.getDayOfYear());

输出:

2021-07-12
MONDAY
12
193

【讨论】:

  • 我是 JavaScript 新手!尝试将您的代码粘贴到脚本中,它显示了一些错误。没有运行,我应该怎么做才能运行它没有任何错误
  • Java 与 JavaScript 不同。我提出的解决方案是Java,作为您问题的原始标签,它不适用于JavaScript。
【解决方案2】:

您可以使用String.substr 将日期字符串拆分为其组件。我们将使用 + 简写将每个组件转换为数字,然后使用 Date constructor new Date(year, monthIndex, day) 从中创建一个新的 Date 对象。

注意:在 JavaScript 中,我们将 monthIndex 传递给日期而不是月份编号,因此七月表示为 monthIndex = 6;

要从您的日期获取月份中的哪一天,您需要Date.getDate()

要从您的日期获取星期几,您需要 Date.getDay(),这将返回 0 - 6(星期日 (0) -> 星期六 (6))

要从日期中获取星期几作为字符串,您可以使用Intl.DateTimeFormat,这将返回 'Monday' -> 'Sunday'。

const timestamp = "20210712";
const year = +timestamp.substr(0,4);
const monthIndex = +timestamp.substr(4,2) - 1;
const day = +timestamp.substr(6,2);

console.log("Timestamp:", timestamp)
console.log("Date components:", JSON.stringify({ year, monthIndex, day }))

const date = new Date(year ,monthIndex, day);
console.log('Date:', date.toDateString());
console.log('Day of Month:', date.getDate());

// Sunday - Saturday : 0 - 6
console.log('Day of Week (0-6):', date.getDay());
console.log('Day of Week (string):', new Intl.DateTimeFormat('en-US', { weekday: 'long'}).format(date))

【讨论】:

  • 我是 javascript 新手,我无法运行此代码...如何在 Web 中运行它以获取输出。
  • 我建议使用jsfiddle.net 之类的东西来测试这样的简单功能。您可以将要测试的任何代码粘贴到 JavaScript 窗口中。我创建了一个可以测试的小提琴:jsfiddle.net/su3baj0n。注意:在运行前按 F12 可以看到控制台输出。您还可以创建一个 node.js 脚本。安装 node.js,然后创建你的脚本,比如 script.js 并在你的命令窗口中:node script.js。
猜你喜欢
  • 2018-07-08
  • 1970-01-01
  • 2019-12-19
  • 2016-10-14
  • 1970-01-01
  • 2018-11-24
  • 2015-04-27
  • 2013-10-29
  • 2011-11-28
相关资源
最近更新 更多