2010-05-05 24 views
5

Yöntemlerden biri için bir DateTime parametresi bekleyen bir WSDL kullanıyorum.. Net SOAP isteğinin Tarih Biçimini nasıl değiştiririm?

2010-1-1T10: .NET çağrımı serializes zaman, böyle bir tarih parametresi oluşturur 00: serializer "s" bir tarih biçimi kullanıyor gibi bu görünüyor 00.00

.

2010-1-1T10: 00: 00.00 -4: 00

nasıl serileştirici kullanmak istediğiniz tarih biçimini belirtebilirim Ben farklı bir biçim saat dilimi farkı ile yani bir ihtiyacın var mı? (C# veya VB.NET)

+1

: "2010-05-05T16: 57: 27,5270036-05: 00". Saniye kesirliğini ve 2 basamaklı ay ve günü not edin. Seninkini nasıl alacağını bilemezsin. –

+0

Haklısınız. Örnekte yanlış yazdım. Önde gelen sıfırlar gereklidir ve -04: 00'dan önceki alan kaldırılmalıdır. –

+0

Teşekkürler Hans, bu benim için mükemmel çalıştı, ama bu son rakamlar ne anlama geliyor ".5270036-05: 00" – mukamaivan

cevap

2

Saat dilimi ofseti geçerli saat diliminize aitse, DateTime örneğinin DateTimeKind.Local olarak ayarlanmış olan Kind özelliğinin olduğunu kontrol etmelisiniz. Değilse, aşağıdaki gibi, bunu zorlayabilirsiniz: Dünya Zaman ve (gerekirse) Saat dilimini koyarak:

DateTime myDateTime; 
... 
myDateTime = myDateTime.SpecifyKind(myDateTime, DateTimeKind.Local); 
+0

Teşekkürler - bu mükemmel çalıştı. –

0

Genellikle bu UTC (Universal Time Coordinated) biçiminde Zaman/Tarih geçirerek yapacaktı ... anlam ayrı bir parametrede.

Bkz: SoapFormatter DateTime serializes değil nasıl, bu gibi görünüyor oluyor http://msdn.microsoft.com/en-us/library/system.datetime.touniversaltime%28VS.71%29.aspx

+0

Bu iyi bir fikir, fakat sorum şu: SOAP çağrılarının seri biçimini, varsayılan biçim yerine bir biçim kullanması için nasıl edinebilirim? (Her durumda, aradığım hizmet bu biçimi kabul etmiyor - SoapUI kullanarak denedim) –

İlgili konular