Kode zum Parsen des Internetdatums


Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports System.Globalization


Public Class ScriptMain
    Inherits UserComponent

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
        '"yyyy-MM-ddTHH:mm:ss.FFFFFFFzzzzzz"        ' 2006-09-25T20:14:12.000-01:00
        '"yyyy-MM-ddTHH:mm:ss.FFFFFFFZ"             ' 2006-09-25T20:14:12.000Z
        '"yyyyMMddHHmmss"                           ' 20040610140023
        '"yyyyMMdd HHmmss"                          ' 20040610 140023

        Dim DateFormat() As String = {"yyyy-MM-ddTHH:mm:ss.FFFFFFFZ", "yyyy-MM-ddTHH:mm:ss.FFFFFFFzzzzzz"}
        Dim Dt As DateTime

        If DateTime.TryParseExact(Row.UTCTime, _
            DateFormat, _
            DateTimeFormatInfo.InvariantInfo, _
            DateTimeStyles.AllowTrailingWhite Or DateTimeStyles.AllowLeadingWhite, Dt) Then
            Row.Datum = Dt
        End If
    End Sub
End


Bemerkung

Mit diesem Kode werden zwei unterschiedliche Datumsformate verarbeitet.

Zum Beispiel:
2006-09-25T20:14:12.000Z         mit der Formatanweisung yyyy-MM-ddTHH:mm:ss.FFFFFFFZ
2006-09-25T20:14:12.000-01:00    mit der Formatanweisung yyyy-MM-ddTHH:mm:ss.FFFFFFFzzzzzz
 

Alle Angaben der Zeitzone werden auf die lokale Zeitzone umgerechnet.