我们有python库datetime库,使用以下方法将字符串日期转换为指定格式的日期类型:
var funcs = [];
function tempFunc(i){
return function(){
console.log("My value: " + i);
};
}
for (var i = 0; i < 3; i++) {
funcs[i] = tempFunc(i);
}
for (var j = 0; j < 3; j++) {
funcs[j]();
}
但是我们有任何库,给定日期字符串建议日期的格式。 对于给出的例子:
2016年12月21日
作为输入,给出输出:
%Y-%间 - %d
答案 0 :(得分:1)
我不知道具有您所要求的功能的库,但编写一个将返回给定字符串上的匹配格式的函数并不困难。
虽然没有克服了以多种格式匹配字符串的问题。
以下是基于数字日期的一些静态通用格式的示例。
date_formats = ["%Y-%m-%d", "%d-%m-%Y", "%m-%d-%Y", "%Y/%m/%d", "%d/%m/%Y", "%m/%d/%Y", "%Y.%m.%d", "%d.%m.%Y", "%m.%d.%Y", "%c", "%x"]
def string_to_date(str):
match = []
for fmt in date_formats:
try:
datetime.strptime(str, fmt)
except ValueError as e:
print(e)
continue
match.append(fmt)
return match
一些代表性的输出:
print(string_to_date("11.12.2015")) # ['%d.%m.%Y', '%m.%d.%Y']
print(string_to_date("21/12/2015")) # ['%d/%m/%Y']
当然,您可以编写代码以动态构建格式,但在这种情况下,我认为它过于宽泛。
如果您想采用动态方法,我建议先在脚本中捕获可能的分隔符,然后尝试构建格式。