简体   繁体   中英

convert javascript date to c# datetime

I am trying to convert javascript date to c# datetime

JavaScript Code

var date = new Date();
    var day = date.getDay();        
    var month = date.getMonth();    
    var year = date.getFullYear();  
    var hour = date.getHours();     
    var minute = date.getMinutes(); 
    var second = date.getSeconds(); 

    // After this construct a string with the above results as below
    var JSDateString = year+ "-" + month + "-" + day + " " + hour + ':' + minute + ':' + second;

C# Code

var JSDateString = "2016-04-02 17:15:45";  // I receive date string via Ajax call in this format

var dt = DateTime.ParseExact(JSDateString , "yyyy-mm-dd HH:mm:ss", CultureInfo.InvariantCulture);

I get invalid datetime format exception. I researched other options in internet but I didn't find any specific answer on how to convert JavaScript datetime to C# datetime.

mm是分钟,而MM是月:

var dt = DateTime.ParseExact(JSDateString , "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);

This might help with the JavaScript side:

function getDate() {
  var date = new Date(),
    year = date.getFullYear(),
    month = (date.getMonth() + 1).toString(),
    formatedMonth = (month.length === 1) ? ("0" + month) : month,
    day = date.getDate().toString(),
    formatedDay = (day.length === 1) ? ("0" + day) : day,
    hour = date.getHours().toString(),
    formatedHour = (hour.length === 1) ? ("0" + hour) : hour,
    minute = date.getMinutes().toString(),
    formatedMinute = (minute.length === 1) ? ("0" + minute) : minute,
    second = date.getSeconds().toString(),
    formatedSecond = (second.length === 1) ? ("0" + second) : second;
  return year + "-" + formatedMonth + "-" + formatedDay + " " + formatedHour + ':' + formatedMinute + ':' + formatedSecond;
};

View a fiddle here: https://jsfiddle.net/kpduncan/de8j318k/

I had too do something like this when I building an application due to not being allowed to add thrid party JS and needing support back to IE8.

As you can see on the MSDN , mm is for minutes (00 - 59) whereas MM is for the month (01 - 12).

var JSDateString = "2016-04-02 17:15:45";
var formatCode = "yyyy-MM-dd HH:mm:ss";

var dt = DateTime.ParseExact(JSDateString , formatCode, CultureInfo.InvariantCulture);

You can see that mm is for minutes because you already use it in your HH:mm:ss .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM