【问题标题】:How to cast this date and save to database如何投射此日期并保存到数据库
【发布时间】:2011-08-30 23:33:14
【问题描述】:

08:15:16 April 1, 2010 PDT 我需要将它保存到 MSSQL 数据库中的 DateTime,但我无法在 C# 中转换它。有人可以帮我投吗? 'PDT'到底是什么?

【问题讨论】:

  • 到目前为止,您的代码看起来如何?当您尝试使用 parse 方法时会发生什么?
  • PDT – 太平洋夏令时间是一个时区。
  • 小心时区,这是这个问题的棘手部分

标签: c# asp.net datetime casting paypal


【解决方案1】:

此帖与Parse DateTime with time zone of form PST/CEST/UTC/etc相关

我不确定如何从 alpha 时区转换为数字,但是在你这样做之后,你可以

DateTime myDate = Convert.ToDateTime("Thu, 18 Mar 2004 14:52:56-07:00");

更新:此链接显然包含将“PDT”转换为 GMT 偏移量的代码。 http://bytes.com/topic/c-sharp/answers/214648-how-do-i-parse-date-w-time-zone 还可以查看 TimeZoneInfo 类 http://msdn.microsoft.com/en-us/library/system.timezoneinfo.aspx

【讨论】:

  • 我使用了来自bytes.com/topic/c-sharp/answers/… 的代码,我认为它工作正常。实际上,将 PDT 转换为 +0700 并且它起作用很重要。如果有任何问题,我将重新提出问题,但现在它可以工作。谢谢
【解决方案2】:

这篇文章中的代码似乎可以正常工作:http://www.codeillustrator.com/2010/03/converting-paypal-paymentdate-to-net.html

using System;
using System.Globalization;

public static class PayPalTransaction
{
    public static DateTime ConvertPayPalDateTime(string payPalDateTime)
    {
    // accept a few different date formats because of PST/PDT timezone and slight month difference in sandbox vs. prod.
        string[] dateFormats = { "HH:mm:ss MMM dd, yyyy PST", "HH:mm:ss MMM. dd, yyyy PST", "HH:mm:ss MMM dd, yyyy PDT", "HH:mm:ss MMM. dd, yyyy PDT" };
        DateTime outputDateTime;

        DateTime.TryParseExact(payPalDateTime, dateFormats, new CultureInfo("en-US"), DateTimeStyles.None, out outputDateTime);

        // convert to local timezone
        outputDateTime = outputDateTime.AddHours(3);

        return outputDateTime;
    }
}

(针对类似问题交叉发布的答案:How do I convert Paypal's HH:MM:SS DD Mmm(.) YYYY PST/PDT to a C# UTC DateTime?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    • 2015-06-17
    • 2014-07-09
    • 2014-11-09
    相关资源
    最近更新 更多