D语言新手问题 D语言字符串时间转时间戳

· Created · Last modified by Brian replied at · 1350 times read

修改一下能兼容多种时间格式不?

比如:

string dt1 = "2019-08-08 08:09:10";
string dt2 = "19-08-08 08:09:10";
string dt3 = "19-08-08 08:09:10";
string dt4 = "2019-8-10 8:9:10";

而且如果你是固定格式没必要替换东西吧?

// 2019-08-10 08:09:10
int strtotime(string dateStr)
{
    import std.datetime : SysTime;
    import std.datetime : DateTime;

    int Y = str[0..4].to!int;
    int m = str[5..7].to!int;
    int d = str[9..11].to!int;
    int H = str[12..14].to!int;
    int i = str[15..17].to!int;
    int s = str[18..20].to!int;

    auto temSystime = SysTime(DateTime(Y, m, d, H, i, s));

    return cast(int)(temSystime.toUnixTime());
}

int time_stamp = strtotime("2019-12-12 12:00:00"); // time_stamp = 1576123200

上面代码没有测试过,只是大概,哈哈哈

时间转时间戳方法实例

// 2019-12-12 12:00:00
int strtotime(string dateStr)
{
    import std.datetime : SysTime;
    import std.datetime : DateTime;
    import std.array : replace;
    string str = dateStr.replace("-", "").replace(" ", "").replace(":", "");
    int Y = str[0..4].to!int;
    int m = str[4..6].to!int;
    int d = str[6..8].to!int;
    int H = str[8..10].to!int;
    int i = str[10..12].to!int;
    int s = str[12..14].to!int;
    auto temSystime = SysTime(DateTime(Y, m, d, H, i, s));
    int ctime = cast(int)(temSystime.toUnixTime());
    return ctime;
}
int time_stamp = strtotime("2019-12-12 12:00:00");// time_stamp = 1576123200
Login to reply