4444-define ( is_month (X ), ( (is_integer (X ) andalso X =< 12 ) orelse ? is_hinted_month (X ) ) ).
4545-define ( is_tz_offset (H1 ,H2 ,M1 ,M2 ), (? is_num (H1 ) andalso ? is_num (H2 ) andalso ? is_num (M1 ) andalso ? is_num (M2 )) ).
4646
47- -define (GREGORIAN_SECONDS_1970 , 62167219200 ).
47+ -define (GREGORIAN_SECONDS_1970 , 62_167_219_200 ).
4848-define (ISO_8601_DATETIME_FORMAT , " Y-m-dTH:i:sZ" ).
4949-define (ISO_8601_DATETIME_WITH_MS_FORMAT , " Y-m-dTH:i:s.fZ" ).
5050
5454-type hour () :: 0 ..23 .
5555-type minute () :: 0 ..59 .
5656-type second () :: 0 ..59 .
57- -type microsecond () :: 0 ..999999 .
57+ -type microsecond () :: 0 ..999_999 .
5858
5959-type daynum () :: 1 ..7 .
6060-type date () :: {year (),month (),day ()}.
@@ -138,11 +138,11 @@ nparse(Date) ->
138138 {DateS , {H , M , S , Ms } } ->
139139 GSeconds = calendar :datetime_to_gregorian_seconds ({DateS , {H , M , S } }),
140140 ESeconds = GSeconds - ? GREGORIAN_SECONDS_1970 ,
141- {ESeconds div 1000000 , ESeconds rem 1000000 , Ms };
141+ {ESeconds div 1_000_000 , ESeconds rem 1_000_000 , Ms };
142142 DateTime ->
143143 GSeconds = calendar :datetime_to_gregorian_seconds (DateTime ),
144144 ESeconds = GSeconds - ? GREGORIAN_SECONDS_1970 ,
145- {ESeconds div 1000000 , ESeconds rem 1000000 , 0 }
145+ {ESeconds div 1_000_000 , ESeconds rem 1_000_000 , 0 }
146146 end .
147147
148148% %
@@ -151,7 +151,7 @@ nparse(Date) ->
151151
152152parse ([Year , X , Month , X , Day , Hour , $: , Min , $: , Sec , $. , Micros , $Z ], _Now , _Opts )
153153 when ? is_world_sep (X )
154- andalso (Micros >= 0 andalso Micros < 1000000 )
154+ andalso (Micros >= 0 andalso Micros < 1_000_000 )
155155 andalso Year > 31 ->
156156 {{Year , Month , Day }, {hour (Hour , []), Min , Sec }, {Micros }};
157157
@@ -162,7 +162,7 @@ parse([Year, X, Month, X, Day, Hour, $:, Min, $:, Sec, $Z ], _Now, _Opts)
162162
163163parse ([Year , X , Month , X , Day , Hour , $: , Min , $: , Sec , $. , Micros , $+ , Off | _Rest ], _Now , _Opts )
164164 when (? is_us_sep (X ) orelse ? is_world_sep (X ))
165- andalso (Micros >= 0 andalso Micros < 1000000 )
165+ andalso (Micros >= 0 andalso Micros < 1_000_000 )
166166 andalso Year > 31 ->
167167 {{Year , Month , Day }, {hour (Hour , []) - Off , Min , Sec }, {Micros }};
168168
@@ -173,7 +173,7 @@ parse([Year, X, Month, X, Day, Hour, $:, Min, $:, Sec, $+, Off | _Rest ], _Now,
173173
174174parse ([Year , X , Month , X , Day , Hour , $: , Min , $: , Sec , $. , Micros , $- , Off | _Rest ], _Now , _Opts )
175175 when (? is_us_sep (X ) orelse ? is_world_sep (X ))
176- andalso (Micros >= 0 andalso Micros < 1000000 )
176+ andalso (Micros >= 0 andalso Micros < 1_000_000 )
177177 andalso Year > 31 ->
178178 {{Year , Month , Day }, {hour (Hour , []) + Off , Min , Sec }, {Micros }};
179179
@@ -316,11 +316,11 @@ tokenise([$., N1, N2, N3, N4 | Rest], Acc)
316316 when ? is_num (N1 ), ? is_num (N2 ), ? is_num (N3 ), ? is_num (N4 ) ->
317317 tokenise (Rest , [ ltoi ([N1 , N2 , N3 , N4 ]) * 100 , $. | Acc ]);
318318tokenise ([$. , N1 , N2 , N3 | Rest ], Acc ) when ? is_num (N1 ), ? is_num (N2 ), ? is_num (N3 ) ->
319- tokenise (Rest , [ ltoi ([N1 , N2 , N3 ]) * 1000 , $. | Acc ]);
319+ tokenise (Rest , [ ltoi ([N1 , N2 , N3 ]) * 1_000 , $. | Acc ]);
320320tokenise ([$. , N1 , N2 | Rest ], Acc ) when ? is_num (N1 ), ? is_num (N2 ) ->
321- tokenise (Rest , [ ltoi ([N1 , N2 ]) * 10000 , $. | Acc ]);
321+ tokenise (Rest , [ ltoi ([N1 , N2 ]) * 10_000 , $. | Acc ]);
322322tokenise ([$. , N1 | Rest ], Acc ) when ? is_num (N1 ) ->
323- tokenise (Rest , [ ltoi ([N1 ]) * 100000 , $. | Acc ]);
323+ tokenise (Rest , [ ltoi ([N1 ]) * 100_000 , $. | Acc ]);
324324
325325tokenise ([N1 , N2 , N3 , N4 , N5 , N6 | Rest ], Acc )
326326 when ? is_num (N1 ), ? is_num (N2 ), ? is_num (N3 ), ? is_num (N4 ), ? is_num (N5 ), ? is_num (N6 ) ->
@@ -718,7 +718,7 @@ ltoi(X) ->
718718
719719
720720-define (DATE , {{2001 ,3 ,10 },{17 ,16 ,17 }}).
721- -define (DATEMS , {{2001 ,3 ,10 },{17 ,16 ,17 ,123456 }}).
721+ -define (DATEMS , {{2001 ,3 ,10 },{17 ,16 ,17 ,123_456 }}).
722722-define (DATE_NOON , {{2001 ,3 ,10 },{12 ,0 ,0 }}).
723723-define (DATE_MIDNIGHT , {{2001 ,3 ,10 },{0 ,0 ,0 }}).
724724-define (ISO , " o \\ WW" ).
@@ -955,7 +955,7 @@ ms_test_() ->
955955 Now = os :timestamp (),
956956 [
957957 ? _assertEqual ({{2012 ,12 ,12 }, {12 ,12 ,12 ,1234 }}, parse (" 2012-12-12T12:12:12.001234" )),
958- ? _assertEqual ({{2012 ,12 ,12 }, {12 ,12 ,12 ,123000 }}, parse (" 2012-12-12T12:12:12.123" )),
958+ ? _assertEqual ({{2012 ,12 ,12 }, {12 ,12 ,12 ,123_000 }}, parse (" 2012-12-12T12:12:12.123" )),
959959 ? _assertEqual (format (" H:m:s.f \\ m \\ i\\ s \\ m\\ o\\ n\\ t\\ h" ,? DATEMS ),
960960 " 17:03:17.123456 m is month" ),
961961 ? _assertEqual (format (" Y-m-d\\ TH:i:s.f" ,? DATEMS ),
@@ -994,21 +994,21 @@ format_iso8601_test_() ->
994994 ? _assertEqual (" 2001-03-10T17:16:17.000000Z" ,
995995 format_iso8601 ({{2001 ,3 ,10 },{17 ,16 ,17 ,0 }})),
996996 ? _assertEqual (" 2001-03-10T17:16:17.100000Z" ,
997- format_iso8601 ({{2001 ,3 ,10 },{17 ,16 ,17 ,100000 }})),
997+ format_iso8601 ({{2001 ,3 ,10 },{17 ,16 ,17 ,100_000 }})),
998998 ? _assertEqual (" 2001-03-10T17:16:17.120000Z" ,
999- format_iso8601 ({{2001 ,3 ,10 },{17 ,16 ,17 ,120000 }})),
999+ format_iso8601 ({{2001 ,3 ,10 },{17 ,16 ,17 ,120_000 }})),
10001000 ? _assertEqual (" 2001-03-10T17:16:17.123000Z" ,
1001- format_iso8601 ({{2001 ,3 ,10 },{17 ,16 ,17 ,123000 }})),
1001+ format_iso8601 ({{2001 ,3 ,10 },{17 ,16 ,17 ,123_000 }})),
10021002 ? _assertEqual (" 2001-03-10T17:16:17.123400Z" ,
1003- format_iso8601 ({{2001 ,3 ,10 },{17 ,16 ,17 ,123400 }})),
1003+ format_iso8601 ({{2001 ,3 ,10 },{17 ,16 ,17 ,123_400 }})),
10041004 ? _assertEqual (" 2001-03-10T17:16:17.123450Z" ,
1005- format_iso8601 ({{2001 ,3 ,10 },{17 ,16 ,17 ,123450 }})),
1005+ format_iso8601 ({{2001 ,3 ,10 },{17 ,16 ,17 ,123_450 }})),
10061006 ? _assertEqual (" 2001-03-10T17:16:17.123456Z" ,
1007- format_iso8601 ({{2001 ,3 ,10 },{17 ,16 ,17 ,123456 }})),
1007+ format_iso8601 ({{2001 ,3 ,10 },{17 ,16 ,17 ,123_456 }})),
10081008 ? _assertEqual (" 2001-03-10T17:16:17.023456Z" ,
1009- format_iso8601 ({{2001 ,3 ,10 },{17 ,16 ,17 ,23456 }})),
1009+ format_iso8601 ({{2001 ,3 ,10 },{17 ,16 ,17 ,23_456 }})),
10101010 ? _assertEqual (" 2001-03-10T17:16:17.003456Z" ,
1011- format_iso8601 ({{2001 ,3 ,10 },{17 ,16 ,17 ,3456 }})),
1011+ format_iso8601 ({{2001 ,3 ,10 },{17 ,16 ,17 ,3_456 }})),
10121012 ? _assertEqual (" 2001-03-10T17:16:17.000456Z" ,
10131013 format_iso8601 ({{2001 ,3 ,10 },{17 ,16 ,17 ,456 }})),
10141014 ? _assertEqual (" 2001-03-10T17:16:17.000056Z" ,
@@ -1020,21 +1020,21 @@ format_iso8601_test_() ->
10201020 ? _assertEqual (" 2001-03-10T07:16:17.000000Z" ,
10211021 format_iso8601 ({{2001 ,3 ,10 },{07 ,16 ,17 ,0 }})),
10221022 ? _assertEqual (" 2001-03-10T07:16:17.100000Z" ,
1023- format_iso8601 ({{2001 ,3 ,10 },{07 ,16 ,17 ,100000 }})),
1023+ format_iso8601 ({{2001 ,3 ,10 },{07 ,16 ,17 ,100_000 }})),
10241024 ? _assertEqual (" 2001-03-10T07:16:17.120000Z" ,
1025- format_iso8601 ({{2001 ,3 ,10 },{07 ,16 ,17 ,120000 }})),
1025+ format_iso8601 ({{2001 ,3 ,10 },{07 ,16 ,17 ,120_000 }})),
10261026 ? _assertEqual (" 2001-03-10T07:16:17.123000Z" ,
1027- format_iso8601 ({{2001 ,3 ,10 },{07 ,16 ,17 ,123000 }})),
1027+ format_iso8601 ({{2001 ,3 ,10 },{07 ,16 ,17 ,123_000 }})),
10281028 ? _assertEqual (" 2001-03-10T07:16:17.123400Z" ,
1029- format_iso8601 ({{2001 ,3 ,10 },{07 ,16 ,17 ,123400 }})),
1029+ format_iso8601 ({{2001 ,3 ,10 },{07 ,16 ,17 ,123_400 }})),
10301030 ? _assertEqual (" 2001-03-10T07:16:17.123450Z" ,
1031- format_iso8601 ({{2001 ,3 ,10 },{07 ,16 ,17 ,123450 }})),
1031+ format_iso8601 ({{2001 ,3 ,10 },{07 ,16 ,17 ,123_450 }})),
10321032 ? _assertEqual (" 2001-03-10T07:16:17.123456Z" ,
1033- format_iso8601 ({{2001 ,3 ,10 },{07 ,16 ,17 ,123456 }})),
1033+ format_iso8601 ({{2001 ,3 ,10 },{07 ,16 ,17 ,123_456 }})),
10341034 ? _assertEqual (" 2001-03-10T07:16:17.023456Z" ,
1035- format_iso8601 ({{2001 ,3 ,10 },{07 ,16 ,17 ,23456 }})),
1035+ format_iso8601 ({{2001 ,3 ,10 },{07 ,16 ,17 ,23_456 }})),
10361036 ? _assertEqual (" 2001-03-10T07:16:17.003456Z" ,
1037- format_iso8601 ({{2001 ,3 ,10 },{07 ,16 ,17 ,3456 }})),
1037+ format_iso8601 ({{2001 ,3 ,10 },{07 ,16 ,17 ,3_456 }})),
10381038 ? _assertEqual (" 2001-03-10T07:16:17.000456Z" ,
10391039 format_iso8601 ({{2001 ,3 ,10 },{07 ,16 ,17 ,456 }})),
10401040 ? _assertEqual (" 2001-03-10T07:16:17.000056Z" ,
@@ -1051,31 +1051,31 @@ parse_iso8601_test_() ->
10511051 parse (" 2001-03-10T17:16:17.000Z" )),
10521052 ? _assertEqual ({{2001 ,3 ,10 },{17 ,16 ,17 ,0 }},
10531053 parse (" 2001-03-10T17:16:17.000000Z" )),
1054- ? _assertEqual ({{2001 ,3 ,10 },{17 ,16 ,17 ,100000 }},
1054+ ? _assertEqual ({{2001 ,3 ,10 },{17 ,16 ,17 ,100_000 }},
10551055 parse (" 2001-03-10T17:16:17.1Z" )),
1056- ? _assertEqual ({{2001 ,3 ,10 },{17 ,16 ,17 ,120000 }},
1056+ ? _assertEqual ({{2001 ,3 ,10 },{17 ,16 ,17 ,120_000 }},
10571057 parse (" 2001-03-10T17:16:17.12Z" )),
1058- ? _assertEqual ({{2001 ,3 ,10 },{17 ,16 ,17 ,123000 }},
1058+ ? _assertEqual ({{2001 ,3 ,10 },{17 ,16 ,17 ,123_000 }},
10591059 parse (" 2001-03-10T17:16:17.123Z" )),
1060- ? _assertEqual ({{2001 ,3 ,10 },{17 ,16 ,17 ,123400 }},
1060+ ? _assertEqual ({{2001 ,3 ,10 },{17 ,16 ,17 ,123_400 }},
10611061 parse (" 2001-03-10T17:16:17.1234Z" )),
1062- ? _assertEqual ({{2001 ,3 ,10 },{17 ,16 ,17 ,123450 }},
1062+ ? _assertEqual ({{2001 ,3 ,10 },{17 ,16 ,17 ,123_450 }},
10631063 parse (" 2001-03-10T17:16:17.12345Z" )),
1064- ? _assertEqual ({{2001 ,3 ,10 },{17 ,16 ,17 ,123456 }},
1064+ ? _assertEqual ({{2001 ,3 ,10 },{17 ,16 ,17 ,123_456 }},
10651065 parse (" 2001-03-10T17:16:17.123456Z" )),
10661066
1067- ? _assertEqual ({{2001 ,3 ,10 },{15 ,16 ,17 ,100000 }},
1067+ ? _assertEqual ({{2001 ,3 ,10 },{15 ,16 ,17 ,100_000 }},
10681068 parse (" 2001-03-10T16:16:17.1+01:00" )),
1069- ? _assertEqual ({{2001 ,3 ,10 },{15 ,16 ,17 ,123456 }},
1069+ ? _assertEqual ({{2001 ,3 ,10 },{15 ,16 ,17 ,123_456 }},
10701070 parse (" 2001-03-10T16:16:17.123456+01:00" )),
1071- ? _assertEqual ({{2001 ,3 ,10 },{17 ,16 ,17 ,100000 }},
1071+ ? _assertEqual ({{2001 ,3 ,10 },{17 ,16 ,17 ,100_000 }},
10721072 parse (" 2001-03-10T16:16:17.1-01:00" )),
1073- ? _assertEqual ({{2001 ,3 ,10 },{17 ,16 ,17 ,123456 }},
1073+ ? _assertEqual ({{2001 ,3 ,10 },{17 ,16 ,17 ,123_456 }},
10741074 parse (" 2001-03-10T16:16:17.123456-01:00" )),
10751075
10761076 ? _assertEqual ({{2001 ,3 ,10 },{17 ,16 ,17 ,456 }},
10771077 parse (" 2001-03-10T17:16:17.000456Z" )),
1078- ? _assertEqual ({{2001 ,3 ,10 },{17 ,16 ,17 ,123000 }},
1078+ ? _assertEqual ({{2001 ,3 ,10 },{17 ,16 ,17 ,123_000 }},
10791079 parse (" 2001-03-10T17:16:17.123000Z" ))
10801080 ].
10811081
0 commit comments