我试图解析RFC1123格式的日期(星期四,2010年1月21日17:47:00美国东部时间).
这是我尝试但没有奏效的:
DateTime Date = DateTime.Parse(dt);
DateTime Date = DateTime.ParseExact(dt, "r", null);
Run Code Online (Sandbox Code Playgroud) 这是出于好奇,而不是因为我需要知道它,但在PHP手册中,它们是相同的; 我看不出同一件事有两种不同数据格式的原因.
http://php.net/manual/en/class.datetime.php
const string RFC1123 = "D, d M Y H:i:s O" ;
const string RFC2822 = "D, d M Y H:i:s O" ;
Run Code Online (Sandbox Code Playgroud)
任何线索?
我们在产品中遇到了一个错误,因为对于某些文化,如果你将当前线程的文化设置为该文化,然后输出基于RFC1123格式的DateTime的字符串,然后尝试将其转换回DateTime,它失败.最令人头疼的失败来自许多文化,这些文化将一周中的几天翻译成一个以mar开头的词,就像意大利语中的martedi一样.我假设解析例程看到"mar"并且认为它意味着三月用英语,一切都失败了,但这只是猜测.我所知道的最好的方式来描述我正在谈论的是提供代码:
using System;
using System.Globalization;
using System.Threading;
namespace RFC1123Test
{
class Program
{
static void Main(string[] args)
{
//list taken from http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo(v=vs.71).aspx
var culturesToTest = new string[] { String.Empty /*invariant culture*/, "af", "af-ZA",
"sq", "sq-AL", "ar", "ar-DZ", "ar-BH", "ar-EG", "ar-IQ", "ar-JO", "ar-KW",
"ar-LB", "ar-LY", "ar-MA", "ar-OM", "ar-QA", "ar-SA", "ar-SY", "ar-TN",
"ar-AE", "ar-YE", "hy", "hy-AM", "az", "az-AZ-Cyrl", "az-AZ-Latn", "eu", "eu-ES",
"be", "be-BY", "bg", "bg-BG", "ca", "ca-ES", "zh-HK", "zh-MO", "zh-CN", "zh-CHS",
"zh-SG", "zh-TW", "zh-CHT", "hr", "hr-HR", "cs", "cs-CZ", "da", "da-DK", "div",
"div-MV", …Run Code Online (Sandbox Code Playgroud) 我正在开发一项返回 expires 标头的服务。该服务将跨不同时区工作。所以我们需要一种方法来返回 GMT 以外的其他时区。
我知道 http 标头必须遵循 RFC1123 标准日期格式。所以服务返回日期如下 -
2019 年 3 月 1 日星期五 15:00:00 GMT
我需要的是以以下格式返回日期。
2019 年 3 月 1 日星期五 15:00:00 +0530
这是 RFC1123 日期格式的有效日期吗?
我们的一位客户在通过对我们的系统的API调用触发之前,在自己的软件中验证电子邮件地址.但问题是他们的验证规则与我们的系统不匹配,因此他们正在解析和接受违反我们规则的地址.这导致许多失败的呼叫.
他们正在解析诸如"dave@-whatever.com"之类的东西,这违反了RFC 952/RFC 1123规则,因为它以连字符开头.他们要求我们为他们提供我们的正则表达式列表,以便他们可以在他们的平台上更新验证以匹配我们的.
所以,我需要找到/构建一个RFC 952/RFC 1123.我在另一个SO线程中找到了这个(我是一个潜伏者:)),它是否合适并防止这些非法域被发送?
"^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$";
Run Code Online (Sandbox Code Playgroud)