Chen Yangjian's Blog

Carpe diem - Seize the day

Got a Date?

| Comments

最近的工作是在 Sybase 和 Oracle 之间翻译 SQL,二者之间的主要区别之一就是 date,格式占位符倒是没啥太大迥异,但是函数的命名方式和参数排布差别好大……

Oracle 里头是可以直接对日期进行加减数字的,例如 date +1,前进一天,如果需要操作的是月份之类,则加上个 Interval(),而 Sybase 里头变成了 dateadd()。如何格式化日期呢?一个 to_char() 一个 convert(),天差地远。

然后我又顺便在弄 Python 和 JavaScript,这又是一片天地,JavaScript 里头的 Date(),木有格式化方法,只能 getFullYear()、getMonth() 一点点人肉去取,而从字符串到日期呢?同样木有格式化构造方法,它只支持默认的几个日期构造格式。在计算上倒是还算方便。

Python 最顺手。

如果跑到以前的 Java,就更恐怖,什么 Date 啦 Calendar 啦 DateFormat 啦 SimpleDateFormat 啦,烦死你。

Perl 呢?mighty perl 鼓吹的方式是自己去写正则,您就慢慢 $1、$2 地搞吧。

以前有个故事说巴别塔,人类以前很团结,要造通天塔,天神们觉得不妥,就让苍生说不通的话有不同的信仰,于是人们忙着吵架打仗,塔的事情也就就此搁置。

在程序里头即是如此,很多事情实现起来很简单,但是一旦牵扯到细节就开始让人抓狂。数字的格式,日期的格式,文本的对齐方式,等等。

有说法称,英语成为世界语言的最大原因不在于日不落帝国曾经的辉煌,而在于人们内心存在的沟通需求。而英语恰好被看上了。但是又有谁会真的希望全世界的日期格式都是 yyyy-mm-dd

Comments