问题标签 [y10k]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
56 浏览

java - 实现DateTimeFormatter Y10K输出等于SimpleDateFormat?

在为某些日期助手编写单元测试时,我偶然发现了一种DateTimeFormatter我想了解如何解决的特定行为。

当输出年份 >9999 时,它总是在年份数字前添加一个加号。一些快速代码来说明这一点:

现在,文档说明了年份模式:

如果字母数少于四个(但不是两个),则仅根据 SignStyle.NORMAL 输出负年份的符号。否则,如果超出焊盘宽度,则根据 SignStyle.EXCEEDS_PAD 输出符号。

所以这给出了一个提示,但我仍然一无所知:

如何使DateTimeFormatter输出与我的示例中的 Y10K+ 日期完全相同的字符串SimpleDateFormat.format()(= unsigned for positive years >9999)?

0 投票
0 回答
37 浏览

sql-server - 处理 OpenQuery 中的无效日期

我在 SQL Server 中针对专有数据库运行 OpenQuery,不幸的是,该数据库选择了过于现代并支持 5 位数的年份,并且作为用户的用户确实设法记录了它们。我编写的代码正在运行,但由于车辆表中有很多日期,因此变得过于复杂。我的工作代码具有以下特点:

我尝试在 openquery 之外测试 r​​ecdate 会产生“将数据类型 DBTYPE_DBDATE 转换为日期时出错”。我已经尝试过 is_date() 和 try_cast(),但两者都不是为了处理已经在日期字段中的无效日期。

在开放式查询中,我尝试使用 CONVERT、CAST 和 CASE 语句,但专有数据库似乎不支持这些语句。

有什么建议么?

问候 HamsterJam