2015-05-26 30 views
1

我想寫正則表達式來捕捉縮寫一週的月和日

datetime.datetime.now().ctime()

Mon May 25 20:20:41 2015

輸出我想知道什麼是一天中的縮寫的可能的輸出周和月?

回答

1

Python datetime class does not invoke C ctime() function即,即使在不提供C ctime()the equivalent of asctime(localtime(clock)))的平臺上它的工作原理也是如此。

CPython source code說,格式爲:

static PyObject * 
format_ctime(PyDateTime_Date *date, int hours, int minutes, int seconds) 
{ 
    static const char *DayNames[] = { 
     "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" 
    }; 
    static const char *MonthNames[] = { 
     "Jan", "Feb", "Mar", "Apr", "May", "Jun", 
     "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" 
    }; 

    int wday = weekday(GET_YEAR(date), GET_MONTH(date), GET_DAY(date)); 

    return PyUnicode_FromFormat("%s %s %2d %02d:%02d:%02d %04d", 
           DayNames[wday], MonthNames[GET_MONTH(date)-1], 
           GET_DAY(date), hours, minutes, seconds, 
           GET_YEAR(date)); 
} 

你可以用C語言環境中使用datetime.strptime(input_ctime_string, "%a %b %d %H:%M:%S %Y")解析它。

以上是(幾乎)相同的對應asctime() definition

char *asctime(const struct tm *timeptr) 
{ 
    static char wday_name[7][3] = { 
     "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" 
    }; 
    static char mon_name[12][3] = { 
     "Jan", "Feb", "Mar", "Apr", "May", "Jun", 
     "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" 
    }; 
    static char result[26]; 


    sprintf(result, "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n", 
     wday_name[timeptr->tm_wday], 
     mon_name[timeptr->tm_mon], 
     timeptr->tm_mday, timeptr->tm_hour, 
     timeptr->tm_min, timeptr->tm_sec, 
     1900 + timeptr->tm_year); 
    return result; 
} 
相關問題