为什么“错误:无效的转义序列?”

时间:2012-08-28 14:30:27

标签: datetime embedded-linux glib vala

根据valadoc

var now = new DateTime.now(new TimeZone.local());
var timestamp = now.format("\%F.\%T");

应将时间戳设置为“2012-08-28.09:51:06”。为什么“F”和“T?”上的“错误:无效的转义序列”来自valadoc的其他格式导致相同的错误,而now.to_string()实际上是“2012-08-28T09:51:06 + 0000”

编辑:也许嵌入式linux目标缺少一些东西?

编辑:测试代码here在此项目中使用glib 2.26.1打印“(null)”。

1 个答案:

答案 0 :(得分:2)

当提到NullUserException时,你不应该包含反斜杠 - 这就是导致无效转义序列错误的原因。

删除反斜杠后它仍然无法工作的原因是在2.30周期之前没有添加%T格式说明符。相关提交是414c8ce532c19fe65deb8dfb80222d0164be5cbe

您可以通过执行以下操作来解决此问题:

var timestamp = now.format ("%F.%H:%M:%S");