Вы могли разделить строку формата на две части, и затем нижний регистр/PM часть, как так:
DateTime now = DateTime.Now;
string nowString = now.ToString("dddd, MMMM d, yyyy a\\t h:mm");
nowString = nowString + now.ToString("tt").ToLower();
Однако я думаю, что более изящное решение состоит в том, чтобы использовать DateTimeFormatInfo
экземпляр , что Вы создаете и заменяете AMDesignator
и PMDesignator
, свойства с и "пополудни" соответственно:
DateTimeFormatInfo fi = new DateTimeFormatInfo();
fi.AMDesignator = "am";
fi.PMDesignator = "pm";
string nowString = now.ToString("dddd, MMMM d, yyyy a\\t h:mmtt", fi);
можно использовать DateTimeFormatInfo
экземпляр для настройки многих других аспектов преобразования DateTime
к string
.
Если вы посмотрите здесь, вы увидите несколько различных библиотек для JSON на C #.
Вы найдете версию для LINQ, а также некоторые другие. Существует около 7 библиотек для C # и JSON.
Инфраструктура .net поддерживает JSON через JavaScriptSerializer. Вот хороший пример для начала.
using System.Collections.Generic;
using System.Web.Script.Serialization;
namespace GoogleTranslator.GoogleJSON
{
public class FooTest
{
public void Test()
{
const string json = @"{
""DisplayFieldName"" : ""ObjectName"",
""FieldAliases"" : {
""ObjectName"" : ""ObjectName"",
""ObjectType"" : ""ObjectType""
},
""PositionType"" : ""Point"",
""Reference"" : {
""Id"" : 1111
},
""Objects"" : [
{
""Attributes"" : {
""ObjectName"" : ""test name"",
""ObjectType"" : ""test type""
},
""Position"" :
{
""X"" : 5,
""Y"" : 7
}
}
]
}";
var ser = new JavaScriptSerializer();
ser.Deserialize<Foo>(json);
}
}
public class Foo
{
public Foo() { Objects = new List<SubObject>(); }
public string DisplayFieldName { get; set; }
public NameTypePair FieldAliases { get; set; }
public PositionType PositionType { get; set; }
public Ref Reference { get; set; }
public List<SubObject> Objects { get; set; }
}
public class NameTypePair
{
public string ObjectName { get; set; }
public string ObjectType { get; set; }
}
public enum PositionType { None, Point }
public class Ref
{
public int Id { get; set; }
}
public class SubObject
{
public NameTypePair Attributes { get; set; }
public Position Position { get; set; }
}
public class Position
{
public int X { get; set; }
public int Y { get; set; }
}
}
Взгляните на систему .web.script.serialization пространство имен (я думаю, вам понадобится .Net 3.5)
Попробуйте проект Vici, Vici Parser. Он включает парсер / токенизатор JSON. Он отлично работает, мы используем его вместе с фреймворком MVC.
Дополнительная информация: http://viciproject.com/wiki/projects/parser/home
Я забыл сказать, что это открытый исходный код так что вы всегда можете взглянуть на код, если хотите.
Вам также следует попробовать мой ServiceStack JsonSerializer - он самый быстрый.NET JSON-сериализатор на данный момент основан на тестах ведущих сериализаторов JSON и поддерживает сериализацию любого типа POCO, DataContracts, списков / словарей, интерфейсов, наследования, объектов с поздней привязкой, включая анонимные типы и т. Д.
Базовый пример
var customer = new Customer { Name="Joe Bloggs", Age=31 };
var json = customer.ToJson();
var fromJson = json.FromJson<Customer>();
Примечание: используйте Microsofts JavaScriptSerializer только в том случае, если производительность не важна для вас, так как мне пришлось исключить его из моих тестов, поскольку он до 40x-100x медленнее, чем другие сериализаторы JSON .