.net字符串转换为时间戳函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net字符串转换为时间戳函数相关的知识,希望对你有一定的参考价值。
参考技术A 转自:C# 和 Linux 时间戳转换/// <summary>
/// 时间戳转为C#格式时间
/// </summary>
/// <param name=”timeStamp”></param>
/// <returns></returns>
private DateTime GetTime(string timeStamp)
DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
long lTime = long.Parse(timeStamp + "0000000");
TimeSpan toNow = new TimeSpan(lTime); return dtStart.Add(toNow);
/// <summary>
/// DateTime时间格式转换为Unix时间戳格式
/// </summary>
/// <param name=”time”></param>
/// <returns></returns>
private int ConvertDateTimeInt(System.DateTime time)
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
return (int)(time - startTime).TotalSeconds;
参考技术B
应该没有转门的函数来获取时间戳,不过可以这样来获得:
TimeSpan toNow = DateTime.Now.Subtract(new DateTime(1970, 1, 1));MessageBox.Show(toNow.TotalMilliseconds.ToString());
BigQuery - 使用默认值将字符串转换为时间戳
【中文标题】BigQuery - 使用默认值将字符串转换为时间戳【英文标题】:BigQuery - convert String to Timestamp with default value 【发布时间】:2020-01-24 15:02:24 【问题描述】:在 BigQuery 中,我有 String
列,其中包含时间戳数据。在查询中,我想将其转换为 Timestamp
列。
我知道,BigQuery 有 PARSE_TIMESTAMP
和 TIMESTAMP
函数。问题是,这些数据来自外部来源,所以我需要做好准备,输入String
可能不是正确的时间戳。
在查询中使用这些函数时,如果输入数据格式错误,它将失败。
有没有一种方法可以让这个查询通过错误的输入数据?例如,将不正确的格式更改为 null
或像 1900-01-01 00:00:00
这样的任意时间戳。
简单的正则表达式检查是不够的。例如2020-02-29 00:00:00
是一个完全正确的时间戳,但2019-02-29 00:00:00
是不正确的。
【问题讨论】:
【参考方案1】:您需要使用 SAFE 作为前缀,以便为无效数据获取 NULL。
SELECT safe.timestamp('2019-02-29 00:00:00') as tt
返回
[
"tt": null
]
如果您使用 SAFE 开始功能。前缀,它将返回 NULL 而不是错误。安全。前缀只防止错误 带前缀的函数本身:它不能防止在 评估参数表达式。安全。前缀只防止错误 由于函数输入的值而发生的情况,例如“值 超出范围”错误;其他错误,例如内部或系统错误, 仍可能发生。如果函数没有返回错误,SAFE。拥有 对输出没有影响。如果函数从不返回错误,例如 兰德,然后是安全的。没有效果。
https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#safe_prefix
【讨论】:
以上是关于.net字符串转换为时间戳函数的主要内容,如果未能解决你的问题,请参考以下文章