使用 FileHelpers 将日期时间格式化为 UTC

发布于 2024-09-27 18:48:22 字数 189 浏览 5 评论 0原文

我有一条记录,使用 FileHelpers 写入 CSV 文件。我希望将结构的 DateTime 字段写为 UTC 日期。我目前有以下格式化程序:

[FieldConverter(ConverterKind.Date, "yyyy-MM-dd")]   

我需要做什么才能让它输出 UTC 日期?

I have a record that I write out to a CSV file using FileHelpers. I want the DateTime fields of the structure to be written out as the UTC date. I currently have the following formatter:

[FieldConverter(ConverterKind.Date, "yyyy-MM-dd")]   

What do I need to do to get it to output the UTC date?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

烟花易冷人易散 2024-10-04 18:48:22

医生说:

您可以查看所有支持的格式
字符串检查 MSDN 文档
日期时间.ParseExact

所以根据: http://msdn.microsoft.com/en- us/library/az4se3k1.aspx

[FieldConverter(ConverterKind.Date, "u")]

"u" =>; “yyyy'-'MM'-'dd HH':'mm':'ss'Z'”
它不会将日期转换为 utc,只是将其格式化。

您仍然需要 DateTime.ToUniversalTime 来转换它。

编辑
如果您有类似的内容:

[FieldConverter(ConverterKind.Date, "ddMMyyyy" )]
public DateTime ShippedDate;

然后添加临时 ShippedDateUTC :

public DateTime ShippedDate;

[FieldConverter(ConverterKind.Date, "ddMMyyyy" )]
public DateTime ShippedDateUTC {
  get{ return ShippedDate.ToUniversalTime();}
}

The doc says :

You can check all the supported format
strings check the MSDN docs for
DateTime.ParseExact

So according to : http://msdn.microsoft.com/en-us/library/az4se3k1.aspx

[FieldConverter(ConverterKind.Date, "u")]

"u" => "yyyy'-'MM'-'dd HH':'mm':'ss'Z'"
It doesn't convert the date to utc, just format it

You still need DateTime.ToUniversalTime to convert it.

Edit
If you have something like :

[FieldConverter(ConverterKind.Date, "ddMMyyyy" )]
public DateTime ShippedDate;

Then add a temp ShippedDateUTC :

public DateTime ShippedDate;

[FieldConverter(ConverterKind.Date, "ddMMyyyy" )]
public DateTime ShippedDateUTC {
  get{ return ShippedDate.ToUniversalTime();}
}
昵称有卵用 2024-10-04 18:48:22

您可以使用公共设置器包装转换,该设置器将正确的值分配给私有字段。例如:

public class OutputRecord
{
    [FieldConverter(ConverterKind.Date, "ddMMyyyy" )]
    private DateTime dateInUtc:

    public void SetDate(DateTime date)
    {
        dateInUtc = date.ToUniversalTime();
    }

}

您还可以使用自定义转换器 http://www.filehelpers.com/example_customconv.html

You can wrap the transformation with a public setter that assigns the right value to a private field. For example:

public class OutputRecord
{
    [FieldConverter(ConverterKind.Date, "ddMMyyyy" )]
    private DateTime dateInUtc:

    public void SetDate(DateTime date)
    {
        dateInUtc = date.ToUniversalTime();
    }

}

You can also use a custom converter http://www.filehelpers.com/example_customconv.html

開玄 2024-10-04 18:48:22

ToUniversalTime() 方法

使用 DateTime类 ,如果 ConverterKind.Date 的类型为 DateTime 您的代码应该是

[FieldConverter(ConverterKind.Date.ToUniversalTime(), "yyyy-MM-dd")]

Use the ToUniversalTime() method of the DateTime class

So, if the ConverterKind.Date is of type DateTime your code should be

[FieldConverter(ConverterKind.Date.ToUniversalTime(), "yyyy-MM-dd")]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文