我想从字符串中提取时间戳,但毫秒部分未正确读取
var dateQuery = dbContext.Database.SqlQuery<DateTime>("SELECT getdate()");
DateTime serverDate = dateQuery.AsEnumerable().First();
产生以下输出
datetime.strptime('20130629110924095','%Y%m%d%H%M%S%f')
而不是
datetime.datetime(2013, 6, 29, 11, 9, 24, 95000)
要明确:95毫秒
我做错了什么?
答案 0 :(得分:2)
微秒由六位数组成。 95毫秒= 95000微秒。
所以要获得95毫秒的日期时间,如datetime.datetime(2013, 6, 29, 11, 9, 24, 95000)
,写:
datetime.strptime('20130629110924095000','%Y%m%d%H%M%S%f')
答案 1 :(得分:2)
%f是C标准中格式字符集的扩展(但在datetime对象中单独实现,因此始终可用)。当与strptime()方法一起使用时,%f指令接受一到六位数字和右边的零位。
所以你得到的结果是预期的行为,你的&#39; 095&#39;被填充到&#39; 095000&#39;。
答案 2 :(得分:1)
var myString = 'Hello word Sentence number';
var myStringArray = myString.split(" ");
myStringArray.forEach(function(entry) {
entry += " "
});
以微秒为单位,相当于95毫秒,即输入(95000
)已经正确,如果你想得到95毫秒。
这是相同的输入,带有一些额外的格式以便于阅读:
'095'
毫秒是>>> from datetime import datetime
>>> datetime.strptime('2013-06-29 11:09:24.095','%Y-%m-%d %H:%M:%S.%f')
datetime.datetime(2013, 6, 29, 11, 9, 24, 95000)
秒,因此0.001
毫秒是95
秒,这就是0.095
是解析小数部分的095
的正确输入的原因一秒钟。