我想在 postgresql 中插入时间数据类型,其中包括时区并了解夏令时。这就是我所做的:
CREATE TABLE mytable(
...
start_time time(0) with time zone,
end_time time(0) with time zone
)
INSERT INTO mytable(start_time, end_time)
VALUES(TIME '08:00:00 MST7MDT', TIME '18:00:00 MST7MDT')
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
时间类型的输入语法无效:“08:00:00 MST7MDT”
如果我使用“MST”而不是“MST7MDT”,它就可以工作,但我需要它了解夏令时。我还尝试使用“美国/埃德蒙顿”作为时区,但出现了同样的错误。
插入带有时区和 DST 的时间值(不是时间戳)的正确方法是什么?
编辑:我实际上想使用“美国/埃德蒙顿”语法
我正在尝试帮助一位朋友获取大学作业的澳大利亚时区,但发现有困难。有人能为我们指出正确的方向吗?谢谢你!
<script>
function Timezone() {
var x = new Date();
var currentTimeZoneOffsetInHours = x.getTimezoneOffset() / 60;
document.getElementById("add").innerHTML = currentTimeZoneOffsetInHours;
}
</script>
<p id="add"></p>
Run Code Online (Sandbox Code Playgroud) 我想知道是否有任何方法可以获取某一天开始时的 UNIX 时间戳,即给定时区的每一天的午夜时间戳。
最好不依赖其他 pip 模块。
有没有办法使用 moment.js 或 moment-timezone 设置时区始终反映“美国/纽约”,无论用户从何处访问应用程序?
我已经尝试过这个,但对象的时区反映了浏览器的时区并返回 America/Los_Angeles。
moment.tz("8/26/2013 4:55 pm", "M/D/YYYY h:mm a", "America/New_York")
Run Code Online (Sandbox Code Playgroud) 我有一个代码,请参见下面。该时间的时区16:17是Europe/Vilnius。我的目标是应用时区$tz2 = 'Africa/Dakar'并获取时区16:17时间Africa/Dakar。
$tz1 = 'Europe/Vilnius';
$tz2 = 'Africa/Dakar';
$a='16';
$b='17';
$match_time = date("H:i", strtotime($a.":".$b));
$dt1 = new DateTime($match_time, $tz1);
$dt2 = new DateTime($match_time, $tz2);
echo "match date".$match_time;
echo "dt1".$dt1;
echo "dt2".$dt2;
Run Code Online (Sandbox Code Playgroud)
我尝试了很多方法来做到这一点。现在这段代码给了我一个错误:
致命错误未捕获错误:在 /home4/phptest/public_html/code.php70(5) 中的字符串上调用成员函数 format() :eval()'d 代码:8 堆栈跟踪:#0 /home4/phptest/public_html/ code.php70(5): eval() #1 {main} 在第 8 行抛出
我的问题是如何修复代码以获得结果,这是进行此类转换的便捷方法吗?
我想获取当前时区,例如欧洲/伦敦。flutter_native_timezone不适用于网络。如何获得?
希望有人能看到我做错了什么,或误解。我在 Go Sandbox 中使用时间 pkg,以熟悉如何正确使用时区特定功能。即使我已经知道一些偏移量,我还是使用以下网站仔细检查自己:https : //documentation.mersive.com/content/topics/api-timezones.htm。在这种情况下,当我要求“America/New_York”的偏移量时,我期望 -14400。但是,当我在 Go Sandbox 上运行以下命令时,我得到的是 -18000:https : //play.golang.org/p/aU0JFHzueU1
americatz, err := time.LoadLocation("America/New_York")
if err != nil {
fmt.Println(err)
return
}
t := time.Now().In(americatz)
zone, offset := t.Zone()
fmt.Printf("%v :: %v\n", zone, offset)
Run Code Online (Sandbox Code Playgroud)
我注意到当我将相同的代码带到一台 linux 机器上时,它完全符合我的预期。我很紧张,因为我不太清楚为什么非常常见的 tz 的两个输出会不同。我知道LoadLocation从 ZONEINFO env var中查找 zipfile已经足够了。否则,它会在其他系统位置(如$GOROOT/lib/time/zoneinfo.zip.
代码运行的 Go 服务器与 linux 服务器具有不同的区域信息文件,这真的很简单吗?如果我想在所有系统中使用完全相同的行为……这是否意味着我需要始终加载并设置我自己的 ZONEINFO 变量?我觉得大多数人会期望-14400 ...
谢谢。
我从我的客户那里收到一个这样的格式的字符串
yyyy-MM-dd'T'HH:mm:ss.SSSXXX:
2021-02-04T15:31:22.265-05:00
2021-02-04T15:31:22.265+00:00
2021-02-04T15:31:22.265-06:00
Run Code Online (Sandbox Code Playgroud)
我需要将它们转换为新格式:
MMMM dd, yyyy - HH:mm a z (where z is the three character abbreviation for the timezone. Ex. EST)
February 02, 2021 - 15:31 PM EST
February 02, 2021 - 15:31 PM UTC
February 02, 2021 - 15:31 PM CST
Run Code Online (Sandbox Code Playgroud)
通常我会做这样的事情:
SimpleDateFormat inDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX")
SimpleDateFormat outDateFormat = new SimpleDateFormat("MMMM dd, yyyy - HH:mm a z")
Date date = inDateFormat.parse("2021-02-04T15:31:22.265-05:00");
String convertedTime = outDateFormat.format(date) // February 02, 2021 - 15:31 PM EST
Run Code Online (Sandbox Code Playgroud)
但后来我意识到它只是在打印 …
当我尝试转换OffsetDateTime到LocalDateTime从java.time,我希望得到的LocalDateTime与本地时区进行更新。所以,如果我有一个OffsetDateTime的2011-12-03T10:00:00Z,我的本地时区为UTC + 2,我预计LocalDateTime是2011-12-03T12:00:00,但我得到代替2011-12-03T10:00:00。我用的方法,把它toLocalDateTime()说OffsetDateTime了。好像只是截断了日期,去掉了偏移部分,没有调整时间。
所以我试图找出一种方法来获取LocalDateTime代表本地日期时间的 a 考虑到区域偏移。按照这个例子,我想得到2011-12-03T12:00:00
我试图通过将区域偏移量(例如“GMT+2”)作为字符串来获取所有 zoneId。但是,我不确定是否可以使用任何 Java 8+ 库。是否可以获得具有给定区域偏移量的所有区域 id 值?
有一个名为getAvailableZoneIds()的方法,java.time但它不带偏移参数。