我需要将gmtime()返回的时间转换为可读字符串。作为一个错误,我在mongo和存储日期中填充了大量数据作为字符串。在我的previous question讨论之后,我正在进行正则表达式匹配以从mongo获取相关数据。现在的问题是转换gmtime,即:
time.struct_time(tm_year=2015, tm_mon=10, tm_mday=9, tm_hour=9, tm_min=49, tm_sec=31, tm_wday=4, tm_yday=282, tm_isdst=0)
到此:
Tue 27 Jan 2015
这是存储在mongo
中的字符串格式{
"startTime" : "Sun 25 Jan 2015 07:14:26 GMT",
"endTime" : "",
"jobStatus" : "JOBCANCELLED",
"uiState" : "HISTORY",
"priority" : "SILVER"
}
使Mongo查询工作的愚蠢方式:
db.getCollection('jobsCollection').find({"startTime":{$regex: "Tue 27 Jan 2015.*"}})
我需要将gmtime转换为mongo查询中显示的regex属性
有什么方法可以实现这个目标吗?
答案 0 :(得分:1)
import time
print time.gmtime(123456)
print time.strftime("%A %d-%b-%Y", time.gmtime(time.time()))
>>>Friday 09-Oct-2015
答案 1 :(得分:0)
strftime函数应该可以帮到你。
答案 2 :(得分:0)
你问了错误的问题,因此得到了错误的答案。您真正想要做的是将当前字符串转换为BSON public class CustomEditText extends EditText{
boolean canPaste() {
return false;
}
@Override
public boolean isSuggestionsEnabled() {
return false;
}
public CustomEditText(Context context) {
super(context);
init();
}
public CustomEditText(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public CustomEditText(Context context, AttributeSet attrs, int defStyle){
super(context, attrs, defStyle);
this.context = context;
init();
}
private void init() {
this.setCustomSelectionActionModeCallback(new ActionModeCallbackInterceptor());
this.setLongClickable(false);
this.setSelected(false);
}
private class ActionModeCallbackInterceptor implements ActionMode.Callback {
public boolean onCreateActionMode(ActionMode mode, Menu menu) { return false; }
public boolean onPrepareActionMode(ActionMode mode, Menu menu) { return false; }
public boolean onActionItemClicked(ActionMode mode, MenuItem item) { return false; }
public void onDestroyActionMode(ActionMode mode) {}
}
}
。
是的,只是在外壳中进行操作,因为这样写起来要简单得多,而且它是一个"一个关闭"过程,为什么要写一个更长的程序?:
Date
这将以最有效和最安全的方式将每个字符串转换为BSON var bulk = db.jobsCollection.initializeOrderedBulkOp(),
count = 0;
db.jobsCollection.find({ "startTime": { "$type": 2 } }).forEach(function(doc) {
bulk.find({ "_id": doc._id }).updateOne({
"$set": { "startTime": new Date(doc.startTime) }
});
count++;
if ( count % 1000 == 0 ) {
bulk.execute();
bulk = db.jobsCollection.initializeOrderedBukOp();
}
});
if ( count % 1000 != 0 )
bulk.execute();
类型。