I am having a problem converting a datetime which is in string format but I am not able to convert it using "yyyyMMdd"
format.
My code is:
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;
To parse a DateTime, use one of the following methods:
Alternatively, you may use try-parse pattern:
Read more about Custom Date and Time Format Strings.
To return a DateTime as a string in "yyyyMMdd" format, you may use ToString
method.
string date = DateTime.ToString("yyyyMMdd");
In your case, assuming you don't want to handle scenario when date is different format or misssing, it would be most convenient to use ParseExact
:
string dateToParse = "20170506";
DateTime parsedDate = DateTime.ParseExact(dateToParse,
"yyyyMMdd",
CultureInfo.InvariantCulture);
no its a string with yyyy/mm/dd and i need it in yyyyMMdd format
If you only need to remove the slashes from a string don't you just replace them?
Example:
myDateString = "2013/03/28";
myDateString = myDateString.Replace("/", "");
myDateString should now be "20130328".
Less of an overkill :)
Based on the property names it looks like you are trying to convert a string to a date by assignment:
claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString();
It is probably due to the current UI culture and therefore it cannot interpret the date string correctly when assigned.
If you want to have DATE as string with TIME as well. We can do like this:
//Date and Time is taking as current system Date-Time
DateTime.Now.ToString("yyyyMMdd-HHmmss");
Use DateTime.TryParseExact()
if you want to match against a specific date format
string format = "yyyyMMdd";
DateTime dateTime;
DateTime.TryParseExact(dateString, format, CultureInfo.InvariantCulture,
DateTimeStyles.None, out dateTime);
You can try these codes
claimantAuxillaryRecord.TPOCDate2 = Convert.ToDateTime(tpoc2[0]).ToString("yyyyMMdd");
Or
claimantAuxillaryRecord.TPOCDate2 = Convert.ToDateTime(tpoc2[0]).ToString("yyyyMMdd hh:mm:ss");
From C# 6:
var dateTimeUtcAsString = $"{DateTime.UtcNow:o}";
The result will be: "2019-01-15T11:46:33.2752667Z"
String to yyyy-MM-dd date format: Example:
TxtCalStDate.Text = Convert.ToDateTime(objItem["StartDate"]).ToString("yyyy/MM/dd");
Simply just do in this way.
string yourFormat = DateTime.Now.ToString("yyyyMMdd");
Happy coding :)
A more simple way I came across while searching for this answer as well;
string date = DateTime.Now.ToString("yyyyMMdd", System.Globalization.CultureInfo.GetCultureInfo("en-US"));
It's the Simple way to convert to format
DateTime.Now.ToString("yyyyMMdd");
You can convert your string to a DateTime
value like this:
DateTime date = DateTime.Parse(something);
You can convert a DateTime
value to a formatted string like this:
date.ToString("yyyyMMdd");
You could use DateTime.TryParse()
instead of DateTime.Parse()
.
With TryParse()
you have a return value if it was successful and with Parse()
you have to handle an exception
Source: Stackoverflow.com