You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JavaScript/jQuery获取客户端系统的日期时间格式

获取客户端系统的日期时间格式

你遇到的问题核心在于:Intl.DateTimeFormat 默认返回的是对应 locale 的标准日期时间格式,而 Windows 等系统允许用户自定义格式(比如修改分隔符、隐藏秒数、切换12/24小时制等),这些自定义设置不会被 Intl API 直接捕获,所以你当前的代码只能拿到标准格式,而非系统实际使用的格式。

解决方案:反向解析系统格式

由于 JavaScript 没有直接读取系统自定义格式字符串的 API,我们可以通过生成一个已知结构的测试日期,将其转为系统格式的字符串后,反向解析出格式模式(比如 dd-MM-yyyy HH:mm)。

实现代码

// 创建各部分数字唯一的测试日期,避免解析冲突
const testDate = new Date(2023, 3, 24, 14, 57, 38); // 对应2023年4月24日14:57:38

// 获取系统格式的日期和时间字符串
const systemDateStr = testDate.toLocaleDateString();
const systemTimeStr = testDate.toLocaleTimeString();

// 解析日期格式
function parseDateFormat(dateStr) {
  let format = dateStr;
  // 替换年:匹配4位数字为yyyy,2位为yy
  format = format.replace(/\d{4}/, 'yyyy');
  format = format.replace(/\d{2}(?!\d)/, match => match === '04' ? 'MM' : 'yy');
  // 替换月:匹配04为MM,4为M
  if (format.includes('04')) {
    format = format.replace('04', 'MM');
  } else if (format.includes('4')) {
    format = format.replace('4', 'M');
  }
  // 替换日:匹配24为dd
  format = format.replace('24', 'dd');
  return format;
}

// 解析时间格式
function parseTimeFormat(timeStr) {
  let format = timeStr;
  // 处理小时:24小时制(14)替换为HH,12小时制(2+AM/PM)替换为hh+A
  if (format.includes('14')) {
    format = format.replace('14', 'HH');
  } else {
    format = format.replace('2', 'hh');
    format = format.replace(/AM|PM/gi, 'A');
  }
  // 替换分钟和秒
  format = format.replace('57', 'mm');
  if (format.includes('38')) {
    format = format.replace('38', 'ss');
  }
  return format;
}

// 组合完整格式
const dateFormat = parseDateFormat(systemDateStr);
const timeFormat = parseTimeFormat(systemTimeStr);
const fullDateTimeFormat = `${dateFormat} ${timeFormat}`;

console.log('系统日期时间格式:', fullDateTimeFormat);

说明

  1. 测试日期选择:特意选用各部分数字唯一的日期(2023-04-24 14:57:38),避免解析时出现数字冲突导致的错误。
  2. 局限性:如果用户系统的自定义格式中存在和测试日期数字完全重合的极端场景,可能会出现解析偏差,但实际使用中概率极低。
  3. 仅需显示日期:如果你的需求只是按照系统格式显示日期而非获取格式字符串,直接调用 new Date().toLocaleString() 即可,它会自动适配系统的自定义显示设置。

内容的提问来源于stack exchange,提问作者Vikas Jindal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 01:07:49