converting datetime to string with T07:00:00.0000000Z [duplicate] - c#

This question already has answers here:
Given a DateTime object, how do I get an ISO 8601 date in string format?
(18 answers)
Closed 4 years ago.
I am attempting to query table storage by generating the following query:
var date = new DateTime(1954, 9, 7);
var timequery = TableQuery.GenerateFilterConditionForDate("Timestamp", QueryComparisons.LessThanOrEqual, date.ToString());
I am getting a bad request when simply doing date.ToString()
The string that I need would be in the following format: 1954-09-07T07:00:00.0000000Z
How do I convert a regular DateTime to be a string in the specified format?

Var date = new DateTime(1954,7,0,0,0,0,DateTimeKind.Utc);
Var stringDate = date.ToUniversalTime().ToString(“o”);
Gives you the required result as
1954-09-07T00:00:00.0000000Z

Related

How to convert different dates with string format to specific format like YYYYMMDD [duplicate]

This question already has answers here:
Parse string to DateTime in C#
(9 answers)
C# DateTime to "YYYYMMDDHHMMSS" format
(18 answers)
Closed 1 year ago.
I am trying to convert different string date formats to a specific format i.e., YYYYMMDD and all the incoming dates are valid. How can I return a new list of strings representing this format
Use DateTime.Parse() to get the date/time information into a standard DateTime object and then you can output it any way that you like.
https://learn.microsoft.com/en-us/dotnet/api/system.datetime.parse?view=net-5.0
public static List<string> TransformDateFormat(List<string> dates)
{
var formats = new string[]
{
"yyyy/MM/dd",
"dd/MM/yyyy",
"MM-dd-yyyy",
"yyyyMMdd"
};
return dates
.Select(date => DateTime.ParseExact(date, formats, null).ToString("yyyyMMdd"))
.ToList();
}
You must specify all possible formats.

C#: DateTime form string [duplicate]

This question already has answers here:
String was not recognized as a valid DateTime " format dd/MM/yyyy"
(13 answers)
datetime.parse and making it work with a specific format
(2 answers)
Closed 2 years ago.
So I have this `string:
string time = "20201006 10:42:42.925"
Which look like valid time format.
And this is what I have try:
DateTime dt1 = DateTime.Parse(time);
And got this error: String was not recognized as a valid DateTime.
Use TryParse Method, eg
dateTime dt1;
if DateTime.TryParse(time, out dt1)
{
// all good
} else{
// no good
}

How to convert date "2018-12-13T07:33:35.893Z" to 13/12/2018 [duplicate]

This question already has answers here:
How to create a .NET DateTime from ISO 8601 format
(7 answers)
Convert datetime without timezone
(4 answers)
Closed 4 years ago.
I have tried following way but doesn't work
dateTime="2018-12-13T07:33:35.893Z"
DateTime dt;
DateTime.TryParseExact(dateTime, out dt);
But I am always getting dt as {1/1/0001 12:00:00 AM}.
Can you please tell me why? and how can I convert that string to date?
I also tried Convert.ToDateTime but doesn't work.
What I actually want is getting the dd/MM/yyyy string'd DateTime so I could perform a query on a DB.
Have you got the original DateTime object or you simply have it in a string?
In case you've got it as DateTime:
string european = dateTime.ToString("dd/MM/yyyy");
In case you've got it as a string:
string date = "2018-12-13T07:33:35.893Z";
if(DateTime.TryParse(date , out DateTime result))
result.ToString("dd/MM/yyyy");
Have a look at the original MSDN documentation about the DateTime.ToString method
Since you've got a DateTime you can convert to that format:
var thisExactMoment = DateTime.Now;
thisExactMoment.ToString("dd/MM/yyyy");
With your "dateTime" variable, just perform dateTime.ToString("dd/MM/yyyy") and you're ready to go.
var dateTime = "2018-12-13T07:33:35.893Z";
var x = DateTime.Parse(dateTime).ToString(#"MM\/dd\/yyyy");

Get original DateTime offset [duplicate]

This question already has answers here:
Converting string to DateTime with offset
(5 answers)
Closed 4 years ago.
I have following code
string dateString = "2018-04-20T12:22:32.8526432-05:30";
var objDate = DateTime.Parse(dateString);
string newDateString = objDate.ToString(); //"4/20/2018 1:52:32 PM"
Once string is parsed to DateTime how do I get original DateTime offset i.e. -5:30 from objDate? I tried following code but it gives local offset i.e. -4:00 but not -5:30.
var offset = TimeZone.CurrentTimeZone.GetUtcOffset(objDate);
Please note that I want to get offset from DateTime object (objDate) and not from string variable dateString.
As mentioned by #Evk the DateTime type does not store the offset. Instead as suggested by #maccettura
string dateString = "2018-04-20T12:22:32.8526432-05:30";
var offset = DateTimeOffset.Parse(dateString);
// returns -05:30:00
Console.WriteLine(offset.Offset);

Convert string with date & UTC offset to DateTime [duplicate]

This question already has answers here:
Convert UTC/GMT time to local time
(12 answers)
Closed 6 years ago.
I am trying to parse a string "20160918000500 +0200" to DateTime containing offset value "+0200".
I tried the following but it gives invalid DateTime exception.
DateTime dtDateTime = DateTime.Parse("20160918000500 +0200",new CultureInfo("yyyyMMddHHmmss zzz"));
Is there a way to convert the String exactly to Datetime with UTC offset value?
To preserve your Offset, use the DateTimeOffset.ParseExact method:
string str = "20160918000500 +0200";
var result = DateTimeOffset.ParseExact(str, "yyyyMMddHHmmss zzz", CultureInfo.InvariantCulture);
Console.WriteLine(result);
I would suggest to try out one of ParseExact methods of DateTime class

Categories