Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 格式化NodeTime instant时是否包含尾随零?_C#_.net_Nodatime - Fatal编程技术网

C# 格式化NodeTime instant时是否包含尾随零?

C# 格式化NodeTime instant时是否包含尾随零?,c#,.net,nodatime,C#,.net,Nodatime,使用NodaTime 2.4.x 如果我创建一个瞬间的Instant,然后尝试使用包含毫秒/纳秒的Pattern对其进行格式化,则后面的零将被截断 e、 g 使用系统; 使用NodaTime; 使用NodaTime.Text; 公共课程 { 私有静态只读InstantPattern\u InstantPattern =InstantPattern.CreateWithInvariantCulture(“uuuu'-'MM'-'dd'T'HH':'MM':'ss;FFFFFF'Z'); 公共静态v

使用NodaTime 2.4.x

如果我创建一个瞬间的
Instant
,然后尝试使用包含毫秒/纳秒的
Pattern
对其进行格式化,则后面的零将被截断

e、 g

使用系统;
使用NodaTime;
使用NodaTime.Text;
公共课程
{
私有静态只读InstantPattern\u InstantPattern
=InstantPattern.CreateWithInvariantCulture(“uuuu'-'MM'-'dd'T'HH':'MM':'ss;FFFFFF'Z');
公共静态void Main()
{
var instantRound=瞬间。从unixtimemissions(158507100000);
var instantNotRound=瞬间。从Unixtimemissions(158507100001);
Console.WriteLine(_instantPattern.Format(instantRound));
Console.WriteLine(_instantPattern.Format(instantNotRound));
}
}
输出

1975-01-09T13:45:00Z
1975-01-09T13:45:00.001Z

无论如何,我是否可以获得以下输出,最好使用内置方法:

1975-01-09T13:45:00.000000Z
1975-01-09T13:45:00.001000Z
基本上,保留后面的零。

您可以参考模式说明符
F
将导致删除不重要的尾随数字<代码>f将不会

您还使用了错误的方法名称。它应该是毫秒SInceUnixePoch的
,而不是UnixtimeMissions的

private static readonly InstantPattern _instantPattern 
        = InstantPattern.CreateWithInvariantCulture("uuuu'-'MM'-'dd'T'HH':'mm':'ss;ffff'Z'");

public static void Main()
{
    var instantRound = Instant.FromMillisecondsSinceUnixEpoch(158507100000);
    var instantNotRound = Instant. FromMillisecondsSinceUnixEpoch(158507100001);
    Console.WriteLine(_instantPattern.Format(instantRound));
    Console.WriteLine(_instantPattern.Format(instantNotRound));
}

使用
ffffff
有效吗?。。。是的。这很简单,我觉得我花了好几个小时寻找它。请随意写一个答案,我会将其设置为已接受。
uuu
在NodaTime中可用,只是必须是最新的。您链接的文档用于
1.4.x
,而我使用的文档用于
2.4.x
。这就是我获得原始格式的原因:我需要在秒后将精度限制为6,但仍然使用大写Fs。@Danieldwards我明白了。文档页面看起来非常相似。。。我应该更加小心。。。无论如何,编辑。