Подтвердить что ты не робот

Как преобразовать DateTime в/из определенного строкового формата (в обоих направлениях, например, заданный формат "yyyyMMdd")?

У меня проблема с преобразованием даты и времени в строковом формате, но я не могу преобразовать его в формате "yyyyMMdd".

Мой код:

string tpoc = refSubClaim.BenefitsFolder.BenefitFolderIdNumber.ToString();
string[] tpocinfo = Regex.Split(tpoc,";");

for (int i = 0; i < tpocinfo.Length; i++)
{
    switch (i)
    {
        case 0:
        {
            string[] tpoc2 = Regex.Split(tpocinfo[0], ",");
            claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString();
            claimantAuxillaryRecord.TPOCAmount2 = Convert.ToDecimal(tpoc2[1]);
            claimantAuxillaryRecord.FundingDelayedBeyondTPOCStartDate2 = tpoc2[2].ToString();
        }
        break;
4b9b3361

Ответ 1

если у вас есть дата в строке с форматом "ddMMyyyy" и вы хотите преобразовать ее в "yyyyMMdd", вы можете сделать следующее:

DateTime dt = DateTime.ParseExact(dateString, "ddMMyyyy", 
                                  CultureInfo.InvariantCulture);
dt.ToString("yyyyMMdd");

Ответ 2

Разбор DateTime:

Чтобы проанализировать DateTime, используйте один из следующих методов:

В качестве альтернативы вы можете использовать шаблон try-parse:

Узнайте больше о пользовательских форматах даты и времени.

Преобразование DateTime в строку:

Чтобы вернуть DateTime в виде строки в формате "yyyyMMdd", вы можете использовать метод ToString.

  • Пример фрагмента кода: string date = DateTime.ToString("yyyyMMdd");
  • Примечание в верхнем регистре M см месяцев и нижнем регистре м до нескольких минут.

Ваш случай:

В вашем случае, если вы не хотите обрабатывать сценарий, когда дата отличается от формата или отсутствует, было бы наиболее удобно использовать ParseExact:

string dateToParse = "20170506";
DateTime parsedDate = DateTime.ParseExact(dateToParse, 
                                          "yyyyMMdd",
                                          CultureInfo.InvariantCulture);

Ответ 3

Вы можете преобразовать свою строку в значение DateTime следующим образом:

DateTime date = DateTime.Parse(something);

Вы можете преобразовать значение DateTime в форматированную строку следующим образом:

date.ToString("yyyyMMdd");

Ответ 4

Формат строки в формате yyyy-MM-dd: Пример:

TxtCalStDate.Text = Convert.ToDateTime(objItem["StartDate"]).ToString("yyyy/MM/dd");   

Ответ 5

Если вы хотите иметь DATE в виде строки с TIME. Мы можем сделать так:

    //Date and Time is taking as current system Date-Time    
    DateTime.Now.ToString("yyyyMMdd-HHmmss");

Ответ 6

Используйте DateTime.TryParseExact(), если вы хотите сопоставлять определенный формат даты

   string format = "yyyyMMdd"; 
    DateTime dateTime;
    DateTime.TryParseExact(dateString, format, CultureInfo.InvariantCulture,
                                             DateTimeStyles.None, out dateTime);

Ответ 7

Вы можете использовать DateTime.TryParse() вместо DateTime.Parse().
С TryParse() у вас есть возвращаемое значение, если оно было успешным, и с Parse() вам нужно обработать исключение

Ответ 8

Просто сделайте это.

string yourFormat = DateTime.Now.ToString("yyyyMMdd");

Счастливое кодирование:)

Ответ 9

нет его строки с yyyy/mm/dd, и мне это нужно в формате yyyyMMdd

Если вам нужно только удалить косые черты из строки, вы просто не замените их?

Пример:

myDateString = "2013/03/28";
myDateString = myDateString.Replace("/", "");

myDateString теперь должен быть "20130328".

Меньше избытка:)

Ответ 10

Это простой способ преобразования в формат

 DateTime.Now.ToString("yyyyMMdd");

Ответ 11

Основываясь на именах свойств, похоже, что вы пытаетесь преобразовать строку в дату по назначению:

claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString();

Вероятно, это связано с текущей культурой пользовательского интерфейса и поэтому не может правильно интерпретировать строку даты при назначении.

Ответ 12

Из С# 6:

var dateTimeUtcAsString = $"{DateTime.UtcNow:o}";

Результат будет: "2019-01-15T11: 46: 33.2752667Z"

Ответ 13

Более простой способ, которым я столкнулся при поиске этого ответа,

string date = DateTime.Now.ToString("yyyyMMdd", System.Globalization.CultureInfo.GetCultureInfo("en-US"));

Ответ 14

Вы можете попробовать эти коды

claimantAuxillaryRecord.TPOCDate2  = Convert.ToDateTime(tpoc2[0]).ToString("yyyyMMdd"); 

Или

claimantAuxillaryRecord.TPOCDate2 = Convert.ToDateTime(tpoc2[0]).ToString("yyyyMMdd hh:mm:ss"); 

Ответ 15

[WebMethod()]
[ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)]
public void tbl_Circulars(int CircularId, int InstituteId, string CircularDate, string CircularSubject, string CircularDesc, string AttachmentPath, string UploadedData)
{

    string constr = ConfigurationManager.ConnectionStrings["connection"].ConnectionString;
    SqlConnection myConn = new SqlConnection(constr);


    myConn.Open();
    string sqlStr = "";
    sqlStr = "Select * from  tbl_Circulars where  InstituteId = '" + CircularId + "'+ '" + InstituteId + "' + '" + CircularDate
        + "' + '" + CircularSubject + "' + '" + CircularDesc + "' + '" + AttachmentPath + "' + '" + UploadedData + "' order by CircularDate ";
    SqlCommand cd = new SqlCommand(sqlStr, myConn);
    SqlDataReader rd = cd.ExecuteReader();
    List<RegisterInfo> services = new List<RegisterInfo>();
    while (rd.Read())
    {
        services.Add(new RegisterInfo()
        {
            CircularId = Convert.ToInt32(rd["CircularId"]),
            InstituteId = Convert.ToInt32(rd["InstituteId"]),
            //CircularDate = rd["CircularDate"].ToString(),
            CircularDate = Convert.ToDateTime(rd["CircularDate"]).ToString("yyyy-MM-dd"),
            CircularSubject = rd["CircularSubject"].ToString(),
            CircularDesc = rd["CircularDesc"].ToString(),
            AttachmentPath = rd["AttachmentPath"].ToString(),
            //UplodedDate =rd["UploadedDate"].ToString()
            UplodedDate = Convert.ToDateTime(rd["UploadedDate"]).ToString("yyyyMMdd-HHMMss")
        });

    }
    rd.Close();
    Context.Response.Write(new JavaScriptSerializer().Serialize(services));
    cd.Clone();
    myConn.Close();

}