如何在Erlang?Fri Jul 13 19:12:59 IST 2018中获取以下DateTime
Fri Jul 13 19:12:59 IST 2018
cnwbcb6i1#
TL; DR
使用特殊的qdate进行所有的日期/时间格式化、转换和时区处理。请特别查看演示部分以获得要点,并根据您的需要进行调整。Erlang的日期处理,在我看来,是令人费解的,缺乏适当的日期处理所需的主要功能。它正在变得更好,但还不完全是。此外,时区处理充其量是原始的。qdate的函数将采用(几乎)任何日期格式,并转换为任何日期格式,同时使用隐式时区(在每个进程的基础上设置时区),或通过设置特定时区。在任何情况下,如果你去定制,你将结束类似于这样的东西:
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"
...不好;)这是我的两分钱,干杯!
6mw9ycah2#
我找到解决办法了。
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来设定不同的格式。建议您只在必须支援传统系统时才使用,因为这个函数呼叫的使用似乎很昂贵。
oymdgrw73#
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'.
3条答案
按热度按时间cnwbcb6i1#
TL; DR
使用特殊的
qdate
进行所有的日期/时间格式化、转换和时区处理。请特别查看演示部分以获得要点,并根据您的需要进行调整。Erlang的日期处理,在我看来,是令人费解的,缺乏适当的日期处理所需的主要功能。它正在变得更好,但还不完全是。此外,时区处理充其量是原始的。
qdate
的函数将采用(几乎)任何日期格式,并转换为任何日期格式,同时使用隐式时区(在每个进程的基础上设置时区),或通过设置特定时区。在任何情况下,如果你去定制,你将结束类似于这样的东西:
...不好;)
这是我的两分钱,干杯!
6mw9ycah2#
我找到解决办法了。
您可以使用http://uk3.php.net/manual/en/function.date.php来设定不同的格式。建议您只在必须支援传统系统时才使用,因为这个函数呼叫的使用似乎很昂贵。
oymdgrw73#