如何将 datetime 转换为 erlang 中的日期名称和月份名称?
How to convert datetime to day name and month name in erlang?
如何在 Erlang 中关注 DateTime?
Fri Jul 13 19:12:59 IST 2018
TL; DR
特别使用特殊的 qdate
for all your date/time formatting, converting, and timezone handling. Look at the Demonstration 部分来了解要点,并根据您的需要进行调整。
在我看来,Erlang 的日期处理很复杂,并且缺少正确处理日期所需的主要功能。情况正在好转,但还不够好。此外,时区处理充其量是原始的。
qdate
的函数将采用(几乎)任何日期格式并转换为任何日期格式,同时使用隐式时区(在每个进程的基础上设置时区),或通过设置特定时区。
无论如何,如果您进行定制,您最终会得到类似这样的东西:
1> {{Year, Month, Day}, {Hour, Minute, Second}} = calendar:now_to_datetime(erlang:now()).
{{2018,7,13},{14,39,45}}
2> lists:flatten(io_lib:format("~4..0w-~2..0w-~2..0wT~2..0w:~2..0w:~2..0w",[Year,Month,Day,Hour,Minute,Second])).
"2018-07-13T14:39:45"
...不好 ;)
这是我的两分钱。干杯!
我找到了解决方案。
A = calendar:universal_time().
qdate:to_string(<<"D M j G:i:s T Y">> , <<"IST">>, A).
您可以使用 http://uk3.php.net/manual/en/function.date.php 来设置不同的格式。建议仅在必须支持遗留系统时使用,因为此函数调用的使用似乎很昂贵。
date_time() ->
{{Year, Month, Day},{ Hour, Minute, Second}} = calendar:local_time(),
DayOfWeek = calendar:day_of_the_week({Year, Month, Day}),
DayName = day_check(DayOfWeek),
MonthName = month_check(Month),
lists:flatten(io_lib:format("~3..0s ~3..0s ~2..0w ~2..0w:~2..0w:~2..0w IST ~4..0w", [DayName, MonthName, Day, Hour, Minute, Second, Year])).
day_check(1) -> 'Mon';
day_check(2) -> 'Tue';
day_check(3) -> 'Wed';
day_check(4) -> 'Thu';
day_check(5) -> 'Fri';
day_check(6) -> 'Sat';
day_check(7) -> 'Sun'.
month_check(1) -> 'Jan';
month_check(2) -> 'Feb';
month_check(3) -> 'Mar';
month_check(4) -> 'Apr';
month_check(5) -> 'May';
month_check(6) -> 'Jun';
month_check(7) -> 'Jul';
month_check(8) -> 'Aug';
month_check(9) -> 'Sep';
month_check(10) -> 'Oct';
month_check(11) -> 'Nov';
month_check(12) -> 'Dec'.
如何在 Erlang 中关注 DateTime?
Fri Jul 13 19:12:59 IST 2018
TL; DR
特别使用特殊的 qdate
for all your date/time formatting, converting, and timezone handling. Look at the Demonstration 部分来了解要点,并根据您的需要进行调整。
在我看来,Erlang 的日期处理很复杂,并且缺少正确处理日期所需的主要功能。情况正在好转,但还不够好。此外,时区处理充其量是原始的。
qdate
的函数将采用(几乎)任何日期格式并转换为任何日期格式,同时使用隐式时区(在每个进程的基础上设置时区),或通过设置特定时区。
无论如何,如果您进行定制,您最终会得到类似这样的东西:
1> {{Year, Month, Day}, {Hour, Minute, Second}} = calendar:now_to_datetime(erlang:now()).
{{2018,7,13},{14,39,45}}
2> lists:flatten(io_lib:format("~4..0w-~2..0w-~2..0wT~2..0w:~2..0w:~2..0w",[Year,Month,Day,Hour,Minute,Second])).
"2018-07-13T14:39:45"
...不好 ;)
这是我的两分钱。干杯!
我找到了解决方案。
A = calendar:universal_time().
qdate:to_string(<<"D M j G:i:s T Y">> , <<"IST">>, A).
您可以使用 http://uk3.php.net/manual/en/function.date.php 来设置不同的格式。建议仅在必须支持遗留系统时使用,因为此函数调用的使用似乎很昂贵。
date_time() ->
{{Year, Month, Day},{ Hour, Minute, Second}} = calendar:local_time(),
DayOfWeek = calendar:day_of_the_week({Year, Month, Day}),
DayName = day_check(DayOfWeek),
MonthName = month_check(Month),
lists:flatten(io_lib:format("~3..0s ~3..0s ~2..0w ~2..0w:~2..0w:~2..0w IST ~4..0w", [DayName, MonthName, Day, Hour, Minute, Second, Year])).
day_check(1) -> 'Mon';
day_check(2) -> 'Tue';
day_check(3) -> 'Wed';
day_check(4) -> 'Thu';
day_check(5) -> 'Fri';
day_check(6) -> 'Sat';
day_check(7) -> 'Sun'.
month_check(1) -> 'Jan';
month_check(2) -> 'Feb';
month_check(3) -> 'Mar';
month_check(4) -> 'Apr';
month_check(5) -> 'May';
month_check(6) -> 'Jun';
month_check(7) -> 'Jul';
month_check(8) -> 'Aug';
month_check(9) -> 'Sep';
month_check(10) -> 'Oct';
month_check(11) -> 'Nov';
month_check(12) -> 'Dec'.