如何将datetime字符串转换为sql格式?

时间:2016-05-13 12:37:32

标签: python datetime

是否有更短的方法将此ISO 8601兼容的UTC时间转换为SQL DATETIME格式?

        <script type="text/javascript">
            var barData = defineBarDataArray();

            $(function () {
                // Global Chart Options
                Chart.defaults.global.legend.display = false;
                Chart.defaults.global.maintainAspectRatio = true;
                // Bar Chart Options
                Chart.defaults.bar.scaleBeginAtZero = false;

                updateBarChart(true)

                setInterval(function () {
                    updateBarChart(false)
                }, 5000);
            });

            function defineBarDataArray() {
                return {
                    labels: [],
                    datasets: [{
                        label: "Registrations",
                        backgroundColor: "rgba(151,187,205,0.5)",
                        borderColor: "rgba(151,187,205,0.8)",
                        borderWidth: 3,
                        data: []
                    }]
                };
            };

            function drawRegByHourChart(animate) {

                $("#regbyhour").remove();
                $("#regbyhour-container").append('<canvas id="regbyhour"></canvas>');

                var context = $("#regbyhour");
                var chart = new Chart(context, {
                    type: 'bar',
                    data: barData
                    // Need to enable or disable animation here based on animate parameter
                });
            };

            function updateBarChart(animate) {
                barData = defineBarDataArray();
                barData.labels.push("12:00 PM");
                barData.labels.push("1:00 PM");
                barData.labels.push("2:00 PM");
                barData.datasets[0].data.push(1 + Math.floor(Math.random() * 2000));
                barData.datasets[0].data.push(1 + Math.floor(Math.random() * 2000));
                barData.datasets[0].data.push(1 + Math.floor(Math.random() * 2000));
                drawRegByHourChart(animate);
            };
        </script>

谢谢!

2 个答案:

答案 0 :(得分:2)

您只需切换格式:

>>> date_str = "2016-03-28T20:23:46+0800"
>>> format = '%Y-%m-%dT%H:%M:%S%z'
>>> new_format = '%Y-%m-%d %H:%M:%S' 
>>> datetime.datetime.strptime(date_str, format).strftime(new_format)
'2016-03-28 20:23:46'

这在python 2.x中不起作用,因为它不支持%z标志。有关解决方法,请参阅timezone python 2 support

答案 1 :(得分:0)

没有简单的方法可以做到这一点。 结帐this post了解有关可能解决方案的详细信息。

如果您正在寻找快速黑客,请尝试以下方法:

st = '2016-03-28T20:23:46+0800'
st[:19].replace("T", " ")

或者,如果您需要日期时间的日期:

datetime.datetime.strptime(st[:19], '%Y-%m-%dT%H:%M:%S')