Для расширения немного при выполнении этого с svn инструментом командной строки Вы хотите ввести:
svn propedit svn:ignore path/to/dir
, который откроет Ваш предпочтительный текстовый редактор, затем введите '*' для игнорирования всего в нем и save+quit - это будет включать сам каталог в svn, но игнорировать все файлы в нем, чтобы проигнорировать каталог, использовать путь родителя, и затем ввести имя каталога в файле. После сохранения, выполненного обновление ('svn'), и затем, регистрируются в соответствующем пути.
Если необходимо преобразовать только ShortDatePattern, следующий код предоставляет то, что мне нужно:
public class wxDateTimeConvert
{
/// <summary>
/// Gets the javascript short date pattern.
/// </summary>
/// <param name="dateTimeFormat">The date time format.</param>
/// <returns></returns>
public static string GetJavascriptShortDatePattern(DateTimeFormatInfo dateTimeFormat)
{
return dateTimeFormat.ShortDatePattern
.Replace("M", "m")
.Replace("yy", "y");
}
}
Включение Javascript на странице:
/// <summary>
/// Inserts the localized datepicker jquery code
/// </summary>
private void InsertLocalizedDatepickerScript()
{
string dateformat = wxDateTimeConvert.GetJavascriptShortDatePattern(Thread.CurrentThread.CurrentUICulture.DateTimeFormat);
String js = @"$(document).ready(function() {
$("".datepicker"").datepicker({
changeYear: true,
dateFormat: '" + dateformat + @"',
maxDate: new Date()
});
});";
this.Page.Header.Controls.Add(
new LiteralControl("<script type=\"text/javascript\">" + js + "</script>")
);
}
Однако это не обрабатывает названия месяцев или дней, форматирование времени или другие особые случаи.
Возможно, это не идеальное решение, но оно может помочь вам начать работу. В jQuery нет методов для работы с датами, в отличие от JavaScript.
Сначала у него есть метод Date.parse ()
, который позволяет анализировать строки даты для получения значения, содержащего число в миллисекундах с 1 января 1970 г. Затем вы можете использовать это значение для создания нового объекта даты и извлечения всех необходимых данных из этого объекта.
var dateString = "Jun 1 2006";
var parsedDate = Date.parse(dateString);
var date = new Date(parsedDate);
К сожалению, Date.parse ()
не работает должным образом. «Пунктирные» строки вроде 2007.03.01
, но и для этого есть решение. Вы можете просто заменить все точки на косые черты:
var dateString = "2007.03.01".replace(/\./g, '/');
Тем не менее, это не заставит Date.parse ()
понять любой формат даты, который вернет .NET, но может быть полезен в некоторых случаях.
Теперь, если у вас есть объект Date, вы можете преобразовать его в любой формат даты, который вам нравится. На самом деле это довольно просто. Существует реализация метода формата даты PHP для JS. Вы можете найти его здесь .
Если вы добавите это в свои сценарии, вы сможете отформатировать дату, используя любые токены, описанные в документации, а их много. Например
date.format('Y-M-d H:i:s');
Я только что столкнулся с той же проблемой и придумал приведенный ниже код. Это не идеально, но должно охватывать большинство культур и изящно проваливаться. Вероятно, это также не самая короткая версия, которую вы могли придумать!
///========================================================================
/// Method : ConvertDateFormat
///
/// <summary>
/// Takes a culture and returns matching C# and jQuery date format
/// strings. If possible the C# string will be the ShortDatePattern for
/// the supplied culture.
/// </summary>
///========================================================================
private static void GetDateFormats(CultureInfo xiCulture, out string xoCSharpFormat, out string xoJQueryFormat)
{
//=======================================================================
// Start by assigning formats that are hopefully unambiguous in case we
// can't do better.
//=======================================================================
xoCSharpFormat = "yyyy-MM-dd";
xoJQueryFormat = "yy-mm-dd";
if (xiCulture.IsNeutralCulture)
{
try
{
xiCulture = CultureInfo.CreateSpecificCulture(xiCulture.Name);
}
catch
{
//===================================================================
// Some cultures are neutral and don't have specific cultures.
// There's not much we can do here.
//===================================================================
return;
}
}
string lCSharpFormat = xiCulture.DateTimeFormat.ShortDatePattern;
//=======================================================================
// Handle:
// C# jQuery Meaning
// d d Day of month (no leading 0)
// dd dd Day of month (leading 0)
// M m Month of year (no leading 0)
// MM mm Month of year (leading 0)
// yy y Two digit year
// yyyy yy Not an exact match but good enough:
// C# means: The year in four or five digits (depending on
// the calendar used), including the century. Pads with
// leading zeros to get four digits. Thai Buddhist and
// Korean calendars have five-digit years. Users
// selecting the "yyyy" pattern see all five digits
// without leading zeros for calendars that have five
// digits. Exception: the Japanese and Taiwan calendars
// always behave as if "yy" is selected.
// jQuery means: four digit year
//
// Copy '.', '-', ' ', '/' verbatim
// Bail out if we find anything else and return standard date format for
// both.
//=======================================================================
StringBuilder lJQueryFormat = new StringBuilder();
bool lError = false;
for (int ii = 0; ii < lCSharpFormat.Length; ++ii)
{
Char lCurrentChar = lCSharpFormat[ii];
switch (lCurrentChar)
{
case 'd':
//=================================================================
// d or dd is OK, ddd is not
//=================================================================
if (ii < (lCSharpFormat.Length - 1) &&
lCSharpFormat[ii+1] == 'd')
{
if (ii < (lCSharpFormat.Length - 2) &&
lCSharpFormat[ii+2] == 'd')
{
//=============================================================
// ddd
//=============================================================
lError = true;
}
else
{
//=============================================================
// dd
//=============================================================
lJQueryFormat.Append("dd");
ii++;
}
}
else
{
//===============================================================
// d
//===============================================================
lJQueryFormat.Append('d');
}
break;
case 'M':
//=================================================================
// M or MM is OK, MMM is not
//=================================================================
if (ii < (lCSharpFormat.Length - 1) &&
lCSharpFormat[ii + 1] == 'M')
{
if (ii < (lCSharpFormat.Length - 2) &&
lCSharpFormat[ii + 2] == 'M')
{
//=============================================================
// MMM
//=============================================================
lError = true;
}
else
{
//=============================================================
// MM
//=============================================================
lJQueryFormat.Append("mm");
ii++;
}
}
else
{
//===============================================================
// M
//===============================================================
lJQueryFormat.Append('m');
}
break;
case 'y':
//=================================================================
// yy or yyyy is OK, y, yyy, or yyyyy is not
//=================================================================
if (ii < (lCSharpFormat.Length - 1) &&
lCSharpFormat[ii + 1] == 'y')
{
if (ii < (lCSharpFormat.Length - 2) &&
lCSharpFormat[ii + 2] == 'y')
{
if (ii < (lCSharpFormat.Length - 3) &&
lCSharpFormat[ii + 3] == 'y')
{
if (ii < (lCSharpFormat.Length - 4) &&
lCSharpFormat[ii + 4] == 'y')
{
//=========================================================
// yyyyy
//=========================================================
lError = true;
}
else
{
//=========================================================
// yyyy
//=========================================================
lJQueryFormat.Append("yy");
ii = ii + 3;
}
}
else
{
//===========================================================
// yyy
//===========================================================
lError = true;
}
}
else
{
//=============================================================
// yy
//=============================================================
lJQueryFormat.Append("y");
ii++;
}
}
else
{
//===============================================================
// y
//===============================================================
lError = true;
}
break;
case '.':
case '-':
case ' ':
case '/':
lJQueryFormat.Append(lCurrentChar);
break;
default:
lError = true;
break;
}
if (lError)
{
break;
}
}
//=======================================================================
// If we didn't get an error return the culture specific formats
//=======================================================================
if (!lError)
{
xoCSharpFormat = lCSharpFormat;
xoJQueryFormat = lJQueryFormat.ToString();
}
}
Я думаю, что это будет самый простой способ ...
string dateFormat = currentCultureInfo.DateTimeFormat.ShortDatePattern.Replace("MM", "mm");
string jsCode = @"$("".datepicker"").datepicker({
dateFormat: '" + dateFormat + @"',
});";