相关疑难解决方法(0)

在c#中的特定时区创建日期时间

我正在尝试创建一个单元测试来测试机器上时区变化的情况,因为它已被错误地设置然后更正.

在测试中,我需要能够在非本地时区创建DateTime对象,以确保运行测试的人员无论身在何处都能成功完成.

从我从DateTime构造函数中可以看到,我可以将TimeZone设置为本地时区,UTC时区或未指定.

如何使用PST等特定时区创建DateTime?

.net c# timezone datetime .net-3.5

139
推荐指数
4
解决办法
17万
查看次数

C#DateTime到UTC时间而不更改时间

如何在不更改实际时间的情况下将预先存在的日期时间转换为UTC时间.

例:

DateTime dateTime = GetSomeDateTime(); // dateTime here is 3pm
dateTime.ToUtcDateTime() // datetime should still be 3pm
Run Code Online (Sandbox Code Playgroud)

c# datetime utc

113
推荐指数
3
解决办法
11万
查看次数

C# ConvertTimeFromUtc 的时髦之处

使用下面的代码,我尝试将此datetime字符串转换为本地字符串DateTime

private DateTime ConvertToLocalTime(string datetimestring)
{
    DateTime timeUtc = DateTime.Parse(datetimestring);
    TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
    DateTime cstTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone);
    return cstTime;
}
Run Code Online (Sandbox Code Playgroud)

这是我得到的异常:

在 System.TimeZoneInfo.ConvertTime(DateTime dateTime、TimeZoneInfo sourceTimeZone、TimeZoneInfo destinationTimeZone、TimeZoneInfoOptions 标志、CachedData cachedData)System.TimeZoneInfo.ConvertTimeFromUtc(DateTime dateTime, TimeZoneInfo destinationTimeZone)

由于提供的 DateTime 没有正确设置 Kind 属性,因此无法完成转换。例如,当 Kind 属性为 时DateTimeKind.Local,源时区必须为 TimeZoneInfo.Local。

ConvertTimeFromUtc 的示例看起来与我的代码完全相同,只是我将此字符串解析为 timeUtc: 2017-01-23T05:00:00+00:00

如果我这样调用 Parse:

DateTime.Parse(datetimestring, null, System.Globalization.DateTimeStyles.RoundtripKind);
Run Code Online (Sandbox Code Playgroud)

timeUtc.Kind.ToString()返回“本地”

那么,我该如何补救呢?时间将以 UTC 时间发送给我。

c#

6
推荐指数
1
解决办法
6899
查看次数

在Joda中将UTC转换为LocalDateTime?

        DateTime dt = new DateTime("2014-09-15T21:20:14");
        System.out.println(dt);
        System.out.println(dt.plusMillis(581042272).toDateTime().toLocalDateTime().toDateTime(DateTimeZone.forID("GMT")));
Run Code Online (Sandbox Code Playgroud)

dt中的时间是UTC,我想将时间设置为dt加上毫秒到GMT?但是,时间仍然打印为UTC(格林威治标准时间晚1小时).我如何设置它以便在前面一个小时?

2014-09-15T21:20:14.000+01:00
2014-09-22T14:44:16.272Z
Run Code Online (Sandbox Code Playgroud)

我知道时间正好落后一小时,因为我在格林威治标准时间15:44:16提出了这个请求

java time local jodatime

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

标签 统计

c# ×3

datetime ×2

.net ×1

.net-3.5 ×1

java ×1

jodatime ×1

local ×1

time ×1

timezone ×1

utc ×1