我很确定我犯了一些非常愚蠢的错误,但这让我感到疯狂。
我正在尝试执行以下操作:
onRender("
function(el, x) {
var myGraph = document.getElementById(el.id);
el.on('plotly_click', function(e) {
var pts = '';
for(var i=0; i < e.points.length; i++){
var annotate_text = 'x = '+e.points[i].x +
'y = '+e.points[i].y.toPrecision(4);
var annotation = {
text: annotate_text,
x: e.points[i].x,
y: parseFloat(e.points[i].y.toPrecision(4))
}
annotations = el.layout.annotations || [];
annotations.push(annotation);
Plotly.relayout(el.id,{annotations: annotations})
}
})}
")
但是我一直得到以下异常:“字符串未被识别为有效的DateTime。”
我试过了: “M / dd / yyyy HH:mm:ss tt” “MM'/'dd'/'yyyy HH:mm:ss tt” “M'/'dd'/'yyyy HH:mm:ss tt”
但到目前为止没有任何工作......任何帮助都会受到赞赏。
答案 0 :(得分:7)
HH
正在寻找24小时格式,但您也传入AM
并指定tt
- 解析器无法处理。您需要查找基于12小时的字符串:
var dateTime = DateTime.ParseExact("08/24/2016 12:00:00 AM", "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
使用hh
,或删除AM
/ tt
部分。
答案 1 :(得分:2)
24小时格式使用hh
12小时格式而不是HH
格式。此信息已在AM/PM
中,且无法通过该方法处理两次。
var dateTime = DateTime.ParseExact("08/24/2016 12:00:00 AM", "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
答案 2 :(得分:1)
您需要使用hh
代替HH
,因为HH
用于24小时格式,并且您还指定格式为am
pm
var dateTime = DateTime.ParseExact("08/24/2016 12:00:00 AM", "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);