在Erlang中使用前导零进行格式化

Mar*_*rov 2 erlang string-formatting

我想将本地时间作为字符串返回,但前导零.我试过这个:

{{Year, Month, Day}, {Hour, Minute, Second}} = erlang:localtime().
DateAsString = io_lib:format("~2.10.0B~2.10.0B~4.10.0B~2.10.0B~2.10.0B~2.10.0B", 
           [Month, Day, Year, Hour, Minute, Second]).
Run Code Online (Sandbox Code Playgroud)

但是如果某些组件是一位数,则返回的字符串是:

[["0",57],"29","2011","17","33","34"]
Run Code Online (Sandbox Code Playgroud)

当前月份9打印为["0",57].

请帮忙.

谢谢.

Ada*_*erg 6

尝试:

1> lists:flatten([["0",57],"29","2011","17","33","34"]).
"09292011173334"
Run Code Online (Sandbox Code Playgroud)

io_lib:format/2(它的伴侣io:format/2)实际上返回一个深IO列表.这样的列表是可打印的,可以在套接字上发送,也可以像扁平字符串一样写入文件,但生成效率更高.展平通常是无用的,因为在所有情况下,字符串将被打印或输出到文件/套接字,它将自动被Erlang展平.