Все,
Я действительно новичок в C # после нескольких лет программирования на VBA. Я попытался преобразовать дату в США, которая передается в сценарий через параметр, в дату в Великобритании. (Извиняюсь, если это действительно основной вопрос - я все еще работаю над учебными материалами)
У меня проблема с передачей даты Великобритании в качестве параметра.
Код ниже:
using System.Globalization;
namespace Dynamic.Script_8D643DCA79B170B
{
// Please use caution when modifying class name, namespace or attributes
[OpenSpan.TypeManagement.DynamicTypeAttribute()]
[OpenSpan.Design.ComponentIdentityAttribute("Script-8D643DCA79B170B")]
public sealed class Program
{
public void Dateformat(Datetime USdate, Datetime UKdate)
{
string value = USdate;
string format = "dd/MM/yyyy";
DateTime result;
if (DateTime.TryParseExact(value, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out result))
{
Console.WriteLine(result.ToString(format));
}
else
{
Console.WriteLine("Date invalid");
}
}
}
}
По сути, я хотел бы передать в скрипт дату, отформатированную как MM / dd / YYYY, и преобразовать ее в британский формат даты dd / MM / YYYY в качестве переменной. Любая помощь и рекомендации по адаптации вышеуказанного сценария будут высоко оценены.
***** Edit **********
Спасибо за всю вашу помощь и советы, я смог разработать новый скрипт, см. Ниже:
public string Dateformat(string USdate)
{
string date = USdate; // en-US formatted date
// Convert to DateTime
DateTime parsedDate = DateTime.ParseExact(date, "MM/dd/yyyy", CultureInfo.InvariantCulture);
// Output in en-GB format
return parsedDate.ToString("dd/MM/yyyy");
}
Проблема, с которой я столкнулся в приведенном выше сценарии, заключается в том, что строка не была распознана как допустимый DateTime. Смотреть скриншот:
Дата US, которую я передаю в скрипт, отформатирована в DateTime.