相关疑难解决方法(0)

如何在C#中获取unix时间戳

我已经浏览过stackoverflow,甚至看了一些建议的问题,似乎没有人回答,你如何在C#中获得unix时间戳?

c# timestamp unix-timestamp

359
推荐指数
10
解决办法
41万
查看次数

如何在C#中获取正确的时间戳

我想在我的应用程序中获得有效的时间戳,所以我写道:

public static String GetTimestamp(DateTime value)
{
    return value.ToString("yyyyMMddHHmmssffff");
}
//  ...later on in the code
String timeStamp = GetTimestamp(new DateTime());
Console.WriteLine(timeStamp);
Run Code Online (Sandbox Code Playgroud)

输出:

000101010000000000
Run Code Online (Sandbox Code Playgroud)

我想要的东西:

20140112180244
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

c# timestamp

125
推荐指数
5
解决办法
30万
查看次数

如何将DateTime转换为自1970年以来的秒数?

我正在尝试将C#DateTime变量转换为Unix时间,即自1970年1月1日以来的秒数.看起来DateTime实际上是自0001年1月1日以来的"滴答"数量.

我目前的想法是从我的DateTime中减去1970年1月1日这样:

TimeSpan span= DateTime.Now.Subtract(new DateTime(1970,1,1,0,0,0));
return span.TotalSeconds;
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

c# datetime

111
推荐指数
4
解决办法
15万
查看次数

在c#中创建时间戳的函数

我想知道,有没有办法在日期时间在c#中创建时间戳?我需要一个毫秒精度值,它也可以在Compact Framework中工作(说因为CF中不存在DateTime.ToBinary()).

我的问题是我想以数据库无关的方式存储这个值,所以我可以稍后对其进行排序,并找出哪个值来自另一个等等.

c# timestamp compact-framework time-precision database-agnostic

100
推荐指数
4
解决办法
26万
查看次数

如何传递datetime参数?

如何将UTC日期传递给Web API?

传递2010-01-01工作正常,但是当我传递UTC日期(例如2014-12-31T22:00:00.000Z时间组件)时,我得到HTTP 404响应.所以

http://domain/api/controller/action/2012-12-31T22:00:00.000Z
Run Code Online (Sandbox Code Playgroud)

产生404错误响应,而

http://domain/api/controller/action/2012-12-31
Run Code Online (Sandbox Code Playgroud)

工作良好.

那么如何将UTC日期传递给Web API - 或者至少指定日期时间?

asp.net datetime asp.net-web-api

72
推荐指数
6
解决办法
12万
查看次数

如何从UNIX中将unix时间戳(μs)反序列化为DateTime?

JSON

{
   "title":"Mozilla Firefox",
   "id":24,
   "parent":2,
   "dateAdded":1356753810000000,
   "lastModified":1356753810000000,
   "type":"text/x-moz-place-container",
   "children":[]
}
Run Code Online (Sandbox Code Playgroud)

C#

class Bookmark
{
    public string title;
    public string id;
    [JsonProperty(ItemConverterType = typeof(JavaScriptDateTimeConverter))]
    public DateTime dateAdded;
    [JsonProperty(ItemConverterType = typeof(JavaScriptDateTimeConverter))]
    public DateTime lastModified;
    public string type;
    public string root;
    public long parent;
    public List<Bookmark> children;
}

private static void Main(string[] args)
{
    var json = File.ReadAllText(@"T:/bookmarks-2013-11-13.json");
    var bookmarks = JsonConvert.DeserializeObject<Bookmark>(json);
}
Run Code Online (Sandbox Code Playgroud)

我尝试运行时遇到异常,

附加信息:阅读日期时出错.意外的令牌:整数.路径'dateAdded'

我想通过使用JavaScriptDateTimeConverter,JSON.NET可以弄清楚如何反序列化那些unix时间戳(女士从epoch开始的μs).最简单的方法是什么?

无法在转换器上查找文档......如果有必要,自己编写文档可能不会太难.

编辑:这些实际上是微秒,而不是毫秒.

c# json.net

44
推荐指数
4
解决办法
3万
查看次数

C#中的Unix时间转换

我试图在unix时间内获得GMT.我使用以下代码:


        public static long GetGMTInMS()
        {
            var unixTime = DateTime.Now.ToUniversalTime() -
                new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);

            return (long)unixTime.TotalMilliseconds;
        }

然后将unix时间转换回DatTime对象,我使用:


        public static DateTime UnixTimeStampToDateTime(double unixTimeStamp)
        {
            System.DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0);
            dtDateTime = dtDateTime.AddMilliseconds(unixTimeStamp).ToLocalTime();
            return dtDateTime;
        }

当我运行它时,GetGMTInMS() 1320249196267.当我把它传给UnixTimeStampToDateTime()我时{11/2/2011 11:53:16 AM}

哪个好.这是我运行代码时的正确时间.我的问题是,当我试图把1320249196267为UNIX时间转换器,比如这个,它返回完全错误的时间.

另一个问题是我在东部时区.这返回了我所在时区的时间.这是DateTime对象处理的东西还是我没有获得GMT.

.net c# datetime unix-timestamp

35
推荐指数
2
解决办法
4万
查看次数

为什么TimeSpan.FromSeconds(double)舍入到毫秒?

TimeSpan.FromSeconds 需要一个双倍,并且可以表示低至100纳秒的值,但是这种方法莫名其妙地将时间四舍五入到整个毫秒.

鉴于我只花了半个小时来确定这个(记录在案的!)行为,知道为什么会出现这种情况会更容易忍受浪费的时间.

任何人都可以建议为什么这种看似适得其反的行为被实施了?

TimeSpan.FromSeconds(0.12345678).TotalSeconds
    // 0.123
TimeSpan.FromTicks((long)(TimeSpan.TicksPerSecond * 0.12345678)).TotalSeconds
    // 0.1234567
Run Code Online (Sandbox Code Playgroud)

.net timespan base-class-library

34
推荐指数
3
解决办法
5878
查看次数

如何将DateTime从JSON转换为C#?

可能重复:
如何将UNIX时间戳转换为DateTime,反之亦然?

我有以下课程:

[DataContractAttribute]
public class TestClass
{
  [DataMemberAttribute]
  public DateTime MyDateTime { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这是JSON:

{ "MyDateTime":"1221818565" }
Run Code Online (Sandbox Code Playgroud)

JSON正在从PHP Web服务返回.

我需要做的是将该epoch字符串转换为有效的C#DateTime.这样做的最佳方法是什么?

我可以做这个:

[IgnoreDataMemberAttribute]
public DateTime MyDateTime { get; set; }

[DataMemberAttribute(Name = "MyDateTime")]
public Int32 MyDateTimeTicks
{
  get { return this.MyDateTime.Convert(...); }
  set { this.Created = new DateTime(...); }
}
Run Code Online (Sandbox Code Playgroud)

但问题是,MyDateTimeTicks是公共的(将其更改为private会导致序列化过程中出现异常)

c# serialization json silverlight-2.0

17
推荐指数
2
解决办法
3万
查看次数

如何在C#中生成UTC Unix时间戳

可能重复:
如何将UNIX时间戳转换为DateTime,反之亦然?

如何在C#中创建unix时间戳?(例如2012-10-10 14:00:00 - > 1349877600)

c# time date unix-timestamp

13
推荐指数
1
解决办法
3万
查看次数