Как преобразовать 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;
Ответы
Ответ 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();
}