相关疑难解决方法(0)

为什么 tzinfo 使用城市时区而不是地区时区?

这个问题与 tzinfo 又名 Olson 时区数据库中的标准时区列表有关。

示例 1:我注意到使用 America/New_York 或 America/Detroit(称为“范例城市”,请参阅http://www.w3.org/International/docs/timezones/#tzids)而不是 US/Eastern。

示例 2:在加拿大,山区时区通常被描述为 America/Edmonton,而不是 Canada/Mountain。不列颠哥伦比亚省的部分地区采用山地时间,但其时区指定为美洲/埃德蒙顿(位于艾伯塔省)。

在这些情况下,为什么要使用地区/示范城市选项而不是国家/地区版本?首先创建国家/地区版本肯定是有原因的,但如果它不是首选方式,为什么还要创建它呢?

当一个国家拥有多个时区时,这主要是一个问题。

是否有最佳实践说明为什么其中一种优于另一种?

(PS,这对谷歌来说是一个困难的问题,因为你得到的都是不相关或无帮助的结果。我能找到的最接近的是夏令时和时区最佳实践,但它没有解决这个问题。)

编辑:2 个时区可以代表 1 个城市吗?“因为并不是每个人都使用规范的大陆/城市表示法来表示他们的时区(例如,我倾向于使用旧的美国/太平洋表示法 - 它仍然受支持,但相当于 America/Los_Angeles)。” 他关于“美国/太平洋”较旧的说法与我认为它较新的间接假设相矛盾,但仍然不是答案。

timezone tzinfo

5
推荐指数
1
解决办法
1860
查看次数

如何在存储日期和时间的应用程序中处理多个TimeZones?

我意识到这有点主观,但是我希望在这里选择大家如何处理多个时区?这里有各种类似的问题和各种各样的接受答案.

怎么会有这种衣食住行中的应用程序,你已经建立,并且你必须克服哪些问题?

mysql sql-server oracle timezone database-design

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

.NET保存DateTime并完全忽略时区

也许答案是如此明显,我没有看到它,但我有一个问题,无论如何我都会冒险.

我希望允许.NET Web应用程序的用户输入日期/时间,将其存储在Oracle数据库中,无论他们在哪个时区,它始终显示为用户输入的原始原始版本.因此,如果加利福尼亚州的一个用户进入下午2点,而马里兰州的另一个用户进入下午2点,则他们都会向日本的用户显示为2PM.有两种类型的客户端,一个是Web用户,一个是Windows客户端用户(通过Web服务连接).

想想它就像我想彻底打破大多数应用程序所担心的所有时区智能.

我不想保存为字符串.我想要一个可以添加/删除小时和分钟的日期时间.

编辑:

基本上是我遇到的确切问题.

.net c#

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

有没有办法让DateTime.IsDaylightSavingTime在具有GMT/UTC时间的机器上工作?

我试图知道是否有办法让DateTime对象在设置为GMT时间的操作系统上获得所有正确的属性.不只是改变时间.

现在我正在做的是:

DateTime f = new DateTime(2012, 8, 1); //A date on summer

DateTime f2 = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(f, TimeZoneInfo.Local.Id, "Central Europe Standard Time");

var isSummer = f2.IsDaylightSavingTime(); //It always returns false if the OS is on GMT
Run Code Online (Sandbox Code Playgroud)

它改变了时间和日期,使GMT成为中欧标准时间就好了,但IsDaylightSavingTime功能不会起作用.它总是返回false,因为我在系统上使用GMT,但我认为不应该因为我DateTime为中欧创建了一个.

有没有办法让DateTime对象f2真正本地化并让它理解如果它的八月并且是欧洲中心它应该返回true而不是false?

我知道如果我在机器上使用本地时间它可以正常工作,但我无法改变服务器上的GMT时间.我很乐意,但我不能.:-)

.net c# datetime

4
推荐指数
1
解决办法
7695
查看次数

为什么DateTime.FromBinary在不同的机器上返回不同的DateTime值

我发现我正在处理的应用程序有一个错误,日期时间错误地存储在我们的数据库中.我将其跟踪到DateTime.FromBinary如何操作之间的一些不一致.

我使用此代码作为测试用例:

var dateTime = DateTime.FromBinary(-8587689004854775808);
string toString = dateTime.ToString();
Run Code Online (Sandbox Code Playgroud)

在我的Windows PC(.NET 4.5,控制台应用程序)以及我的iOS应用程序(Xamarin.iOS 8.10.0.267)上,我得到以下结果:

5/27/2015 12:00:00 AM
Run Code Online (Sandbox Code Playgroud)

但是,在我们的天蓝色服务器上,它将在同一天发布,但是早上6点.

作为一个快速测试,我解雇了DotNetFiddle:

https://dotnetfiddle.net/ziBwfA

果然输出是:

5/27/2015 6:00:00 AM
Run Code Online (Sandbox Code Playgroud)

请注意,我还输出了"Kind"属性,它又以'Local'的形式返回,因此我认为这不是本地与utc的问题.

有关为什么会出现这种情况的任何想法?

c# datetime

4
推荐指数
1
解决办法
848
查看次数

当在UTC中执行Java代码时,如何在ET中存储带偏移的日期

我们将日期存储在sqlserver db表中,作为varchar。当在Java代码中将其作为字符串读取然后解析为Date时,它将被读取为UTC(Java代码位于UT中的服务器中)。将日期重新转换为ET时要晚4小时。如何处理将日期存储在此db列中的ET中,以便在Java代码中将其读取为ET。

我们正在研究偏移量,但并未确切了解该怎么做。

表03/29/2019 23:23:03中的Varchar日期//我们希望此日期位于ET中

SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Date beginDate = sdf.parse("03/29/2019 23:23:03");
Run Code Online (Sandbox Code Playgroud)

//问题是执行此代码时,服务器处于UTC状态。因此beginDate //被解读为UTC时间03/29/2019 23:23:03而不是美国东部时间03/29/2019 23:23:03

预计于03/29/2019 23:23:03 ET实际03/29/2019 23:23:03 UTC

java timezone datetime timezone-offset java-date

4
推荐指数
1
解决办法
87
查看次数

JSTL和时区

我对时区有一些疑问.我们以UTC时间存储所有日期,但我们需要在本地(美国东部)时间和UTC同时显示其中一些日期.

这是我的测试,我有UTC的日期,并希望以UTC和当地时间显示它:

<html>
<!-- let's assume this date is in UTC, I get it from Database in my code -->
<jsp:useBean id="dateValue" class="java.util.Date" />

GMT
<fmt:formatDate value="${dateValue}" pattern="yyyy-MM-dd HH:mm:ss z" timeZone="GMT"/>
</html>
<!-- Displays the original time +4  - not what I need-->

No time zone
<fmt:formatDate value="${dateValue}" pattern="yyyy-MM-dd HH:mm:ss z"/> 
<!-- Displays the original time, but timezone is EDT -->

US/Eastern
<fmt:formatDate value="${dateValue}" pattern="yyyy-MM-dd HH:mm:ss z" timeZone="US/Eastern"/> 
<!-- Displays the original time, timezone is EDT, I need original + …
Run Code Online (Sandbox Code Playgroud)

java jsp jstl

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

从unix时间转换的问题

在MySQL中尝试处理unix时间戳时,我发现了一些奇怪的东西.我注意到在转换为任意日期的unix时间戳时,介于'00:59:59''01:00:00'之间的时间超过1秒.深入挖掘我有以下示例查询,结果我不明白:

SELECT FROM_UNIXTIME(1382835600) AS a, FROM_UNIXTIME(1382832000) AS b;
+---------------------+---------------------+
| a                   | b                   |
+---------------------+---------------------+
| 2013-10-27 01:00:00 | 2013-10-27 01:00:00 |
+---------------------+---------------------+
Run Code Online (Sandbox Code Playgroud)

两个unix时间戳相距1小时(3600秒),但生成的时间戳相同.也许这是一个时区问题,但它毕竟是在同一台服务器上.

mysql timezone timestamp unix-timestamp

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

在Python中访问datetime.now()值

我希望能够在我的程序中实现一个条件,它只能运行N个小时,也许用户可以指定N,但是我们不能超前.

我想我可以使用datetime.now() 并将下面的值存储在变量中,time

>>> time 
>>> time = datetime.datetime(2013, 12, 9, 21, 50, 32, 405329)
Run Code Online (Sandbox Code Playgroud)

关于如何访问( - )之间的第四个字段,看到它是一个字符串的任何想法?

我的条件就像while time != timeEndtimeEnd将是下面的值:

>>> timeEnd = datetime.datetime(2013, 12, 9, 21+N, 50, 32, 405329)

谢谢

python time datetime while-loop timedelta

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

如何从偏移量获取时区名称?

我正在使用时刻时区进行时区计算。我有一些来自数据库的偏移GMT数据,如、GMT+1GMT+2GMT+3GMT+4

无论如何,我可以从这些数据中获取时区或时区名称,例如“America/Los_Angeles”吗?

timezone momentjs

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