I'm trying to pass a Datetime to SharePoint list. For german datetime format it works, but it needs to be variable so i tried this:
itemsList[i]["FTPDate"] = DateTime.ParseExact(entity.FTPDate.ToString("dd MMM yyyy"), "dd MMM yyyy", Culture);
but I still get an invalid data exception.
What am I doing wrong?
Sharepoint dates are saved according to ISO8061, there is a helper method on the SPUtility class that can convert your datetime to the correct string.
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.utilities.sputility.createiso8601datetimefromsystemdatetime.aspx
Related
I generate an entity with
jhipster import-jdl hello.jdl
entity Hello {
title String,
myDate LocalDate
}
Default fake data is generated
hello.csv
id;title;myDate
1;mobile Fish;2019-11-17
2;Savings Account Dam;2019-11-18
Problem
However my date format is Estonian and is DD.MM.YYYY, so if I change it to following then the data is not being imported into the database. myDate field is null for both entries. Is there any way to import dates in other format than YYYY-MM-DD ?
hello.csv
id;title;myDate
1;mobile Fish;17.11.2019
2;Savings Account Dam;18.11.2019
Unfortunately you cannot change this format because Liquibase expects dates to be in "yyyy-MM-dd" format as stated in its doc:
Date/Time values included in the CSV file should be in ISO format http://en.wikipedia.org/wiki/ISO_8601 in order to be parsed correctly by Liquibase.
It's hard-coded in liquibase.util.ISODateFormat.java, so there's nothing JHipster can do about it.
I have a string like this
01/01/2019 8:43:55 AM # dd/MM/yy hh:mm:ss ??
After reading through the docs I concluded that the AM part had no corresponding entry in the formats provided. So that I would have to simply test to see if the string ended in either AM or PM and then adjust the hour part accordingly.
Is there something slicker? I didn't really grasp how to use templates yet, and I notice that the last two methods in the docs mention templates.
I think you are looking for tt (also, your parsing string should be different for the year and the hour):
import times
var dt = parse("01/01/2019 8:43:55 AM", "dd/MM/yyyy H:mm:ss tt")
echo dt
## 2019-01-01T08:43:55+01:00
dt = parse("01/01/2019 8:43:55 PM", "dd/MM/yyyy H:mm:ss tt")
echo dt
## 2019-01-01T20:43:55+01:00
I have tried all the ways, however not sure why the string date is not getting converted to datetime.
string windowsTime = "2/21/2009 10:35:14 PM"
DateTime time = DateTime.ParseExact(windowsTime, "MM/dd/yyyy hh:mm:ss tt", null);
I used, DateTime.Parse, ParseExact, Convert.ToDatetime.
But nothing is working, I am getting "String was not recognized as a valid DateTime.".
can somebody advise what am I doing wrong ?
Since the month has only one digit this is correct M.
You also have to use CultureInfo.InvariantCulture instead of null(means current-culture). Otherwise all / will be replaced with the actual date separator of your current culture( for me de-DE it's .):
DateTime time = DateTime.ParseExact(windowsTime, "M/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
Custom date and time format strings: the "/" Custom Format Specifier
as specified in the MSDN
"MM" The month, from 01 through 12. More information: The "MM" Custom
Format Specifier.
Custom Datetime
I am trying to convert string to datetime. But it is giving me exceptioncontibously.
Kindly help.
DateTime dt = Convert.ToDateTime("15-07-2013");
I am getting exception as "String was not recognized as a valid DateTime."
Now i have the string as "15-07-2013 07:12:00 PM"
When i am using the code as mentioned below i am getting exception.
DateTime dtCurrentFile = DateTime.ParseExact("15-07-2013 07:12:00 PM", "dd-MM-yyyy HH:mm:ss tt", CultureInfo.InvariantCulture, DateTimeStyles.None);
I am getting the same exception.
Your string format is "dd-MM-yyyy" , but Convert.ToDateTime() default format is "MM-dd-yyyy" . So Options are:
Changing your string format to "07/15/2013"
Forcing the conversion to adapt with it using:
DateTime dt = DateTime.ParseExact("15-07-2013", "dd-MM-yyyy",CultureInfo.InvariantCulture, DateTimeStyles.None);
You can always force the format with DateTime.ParseExact and avoid culture issues with using InvariantCulture:
DateTime dt = DateTime.ParseExact("15-07-2013", "dd-MM-yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None);
Custom Date and Time Format Strings
However, your code works for me with culture "de-DE".
Update:
You have to use lower hh for the hours when you provide the am/pm designator:
DateTime.ParseExact("15-07-2013 07:12:00 PM", "dd-MM-yyyy hh:mm:ss tt", CultureInfo.InvariantCulture, DateTimeStyles.None)
HH means 24h format which makes no sense at all with the AM/PM designator.
try to use ParseExact:
DateTime dt = DateTime.ParseExact("15-07-2013", "dd-MM-yyyy", null);
The problem why you are getting exception is that by default C# supports date time in this format
"MM/dd/yyyy" where as you are trying passing date time is this format "dd-MM-yyyy"
although you can convert using your format but for that you need to tell the compiler your date is in which format so for that you can use
DateTime
myDate = DateTime.ParseExact("15-07-2013", "dd-MM-yyyy",
System.Globalization.CultureInfo.InvariantCulture);
I am getting an error in converting string to date in C#.
The error is:
string is not valid datetime.
Below is the code that I am using to convert string into datetime.
string[] DateFormat = { "dd-MM-yyyy", "dd/MM/yyyy", "MM-dd-yyyy", "MM/dd/yyyy" ,"dd-MMM-yy"};
VendorSinceDate = DateTime.ParseExact(dtresult.Rows[0]["VendorSinceDate"].ToString(),DateFormat,System.Globalization.CultureInfo.InvariantCulture,System.Globalization.DateTimeStyles.None);
//dtresult.Rows[0]["VendorSinceDate"].ToString()="06-Jun-12 12:00:00 AM";
None of your possible DateFormats include the time, but the string you're trying to convert does.
You need to add a matching DateFormat, e.g. dd-MMM-yy hh:mm:ss tt