Skip to content

Commit

Permalink
Merge pull request #180 from lempiji/update-datetime-parse
Browse files Browse the repository at this point in the history
簡便な日時解析の例としてdateparserの利用法を追加
  • Loading branch information
lempiji committed Sep 23, 2023
2 parents 3cea87a + 6dff477 commit 79488f7
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
2 changes: 2 additions & 0 deletions dub.sdl
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,5 @@ subPackage "linux"
subPackage "thirdparty/libdparse"
subPackage "thirdparty/json"
subPackage "thirdparty/vibe-d"

dependency "dateparser" version="~>3.0.4"
22 changes: 22 additions & 0 deletions source/datetime_example.d
Original file line number Diff line number Diff line change
Expand Up @@ -454,3 +454,25 @@ Unix timeは UTC時間の1970年1月1日 0時0分0秒からの秒数となりま
auto ut2 = SysTime(DateTime(2021, 12, 31, 23, 59, 59), localTZ).toUnixTime();
assert(ut2 == 1640962799);
}

/++
# 日時文字列を組み込みの日時型(SysTime)に変換する簡便な方法
外部ライブラリを利用できる場合、`dateparser` パッケージの `parse` 関数を利用する方法が簡単です。
See_Also: https://code.dlang.org/packages/dateparser
+/
unittest
{
import dateparser;
import std.datetime;

// SysTime型が得られます
SysTime date1 = parse("2023-01-01");
SysTime date2 = parse("2023/01/01");
SysTime date3 = parse("2023/01/01 12:34:56"); // スペース区切りの時刻もOKです

assert(date1 == SysTime(DateTime(2023, 1, 1)));
assert(date2 == SysTime(DateTime(2023, 1, 1)));
assert(date3 == SysTime(DateTime(2023, 1, 1, 12, 34, 56)));
}

0 comments on commit 79488f7

Please sign in to comment.