รายการ Timezone ID สำหรับใช้กับ FindTimeZoneById () ใน C #?


255

ใครจะกรุณาชี้ให้ฉันรายการที่สมบูรณ์ของเขตเวลาที่อ้างอิงโดยรหัสที่คาดว่าจะทั้งหมดTimeZoneInfo.FindTimeZoneById()? ฉันไม่สามารถหารายการได้ทุกที่และฉันได้อ่านเอกสาร.


2
หากคุณสังเกตเห็นในคำตอบด้านล่างมีรหัสเขตเวลาซ้ำซ้อนกันหลายตัวคุณควรอ่านที่นี่เพื่อเรียนรู้เพิ่มเติม: stackoverflow.com/a/15448800/37055
Chris Marisic

7
สำคัญ - ข้อมูลนี้ไม่คงที่ มีการเพิ่มเขตเวลาใหม่ลงใน Windows เนื่องจากรัฐบาลของโลกได้ทำการเปลี่ยนแปลง นี่คือเหตุผลที่ว่าทำไมไม่มีหน้าเว็บที่เชื่อถือได้ในรายการเอกสาร อย่าพึ่งพารายการฮาร์ดโค้ดใด ๆ แต่โทรหาTimeZoneInfo.FindTimeZoneById()ตัวคุณเองหรือใช้TZUTIL.EXE /Lเพื่อแสดงรายการ คำตอบด้านล่างเป็นเพียงภาพรวมของข้อมูล ณ เวลาที่รายงาน อย่าคัดลอกจากที่นี่เพื่อขัดจังหวะการสมัครของคุณ!
Matt Johnson-Pint

1
หากจำเป็นคุณสามารถอ่านได้จากรีจิสทรีที่HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zonesหรือใช้EnumDynamicTimeZoneInformationWindows API
Matt Johnson-Pint

คำตอบ:


359

นี่คือรายชื่อเต็มของโปรแกรมและผลของมัน

รหัส:

using System;

namespace TimeZoneIds
{
    class Program
    {
        static void Main(string[] args)
        {
            foreach (TimeZoneInfo z in TimeZoneInfo.GetSystemTimeZones())
                Console.WriteLine(z.Id);
        }
    }
}

TimeZoneIdผลบน Windows 7 ข่ายของฉัน:

เวลามาตรฐานของ Dateline

UTC-11

เวลามาตรฐานซามัว

เวลามาตรฐานของฮาวาย

เวลามาตรฐานอลาสก้า

เวลามาตรฐานแปซิฟิก (เม็กซิโก)

เวลามาตรฐานแปซิฟิก

เวลามาตรฐานสหรัฐอเมริกาเมาน์เทน

เวลามาตรฐานบนภูเขา (เม็กซิโก)

เวลามาตรฐานของภูเขา

เวลามาตรฐานอเมริกากลาง

เวลามาตรฐานตอนกลาง

เวลามาตรฐานตอนกลาง (เม็กซิโก)

เวลามาตรฐานแคนาดากลาง

เวลามาตรฐานของ SA Pacific

เวลามาตรฐานตะวันออก

เวลามาตรฐานตะวันออกของสหรัฐอเมริกา

เวลามาตรฐานเวเนซุเอลา

เวลามาตรฐานของปารากวัย

เวลามาตรฐานแอตแลนติก

เวลามาตรฐานของบราซิลกลาง

เวลามาตรฐานตะวันตกของ SA

เวลามาตรฐานแปซิฟิก SA

เวลามาตรฐานนิวฟันด์แลนด์

เวลามาตรฐานของอเมริกาใต้

เวลามาตรฐานอาร์เจนตินา

เวลามาตรฐานตะวันออกของ SA

เวลามาตรฐานกรีนแลนด์

เวลามาตรฐานมอนเตวิเดโอ

UTC-02

เวลามาตรฐานกลางมหาสมุทรแอตแลนติก

เวลามาตรฐานอะซอเรส

เวลามาตรฐานเคปเวิร์ด

เวลามาตรฐานโมร็อกโก

UTC

เวลามาตรฐาน GMT

เวลามาตรฐานกรีนิช

เวลามาตรฐานยุโรปว

เวลามาตรฐานยุโรปกลาง

เวลามาตรฐานโรมานซ์

เวลามาตรฐานยุโรปกลาง

เวลามาตรฐานของแอฟริกากลางว

เวลามาตรฐานนามิเบีย

เวลามาตรฐานจอร์แดน

เวลามาตรฐานของ GTB

เวลามาตรฐานตะวันออกกลาง

เวลามาตรฐานอียิปต์

เวลามาตรฐานซีเรีย

เวลามาตรฐานแอฟริกาใต้

เวลามาตรฐาน FLE

เวลามาตรฐานอิสราเอล

E. เวลามาตรฐานยุโรป

เวลามาตรฐานภาษาอาหรับ

เวลามาตรฐานอาหรับ

เวลามาตรฐานรัสเซีย

เวลามาตรฐานแอฟริกาตะวันออก

เวลามาตรฐานอิหร่าน

เวลามาตรฐานของอาหรับ

เวลามาตรฐานอาเซอร์ไบจาน

เวลามาตรฐานมอริเชียส

เวลามาตรฐานจอร์เจีย

เวลามาตรฐานของคอเคซัส

เวลามาตรฐานของอัฟกานิสถาน

เวลามาตรฐานอีกาเทรินเบิร์ก

เวลามาตรฐานปากีสถาน

เวลามาตรฐานของเอเชียตะวันตก

เวลามาตรฐานอินเดีย

เวลามาตรฐานศรีลังกา

เวลามาตรฐานเนปาล

เวลามาตรฐานของเอเชียกลาง

เวลามาตรฐานบังคลาเทศ

เวลามาตรฐานของเอเชียกลางตอนกลาง

เวลามาตรฐานพม่า

เวลามาตรฐานของเอเชียตะวันออกเฉียงใต้

เวลามาตรฐานของเอเชียเหนือ

เวลามาตรฐานจีน

เวลามาตรฐานของเอเชียตะวันออกเฉียงเหนือ

เวลามาตรฐานสิงคโปร์

เวลามาตรฐานของออสเตรเลียตะวันตก

เวลามาตรฐานไทเป

เวลามาตรฐานอูลานบาตอร์

เวลามาตรฐานโตเกียว

เวลามาตรฐานเกาหลี

เวลามาตรฐานยาคุตสค์

Cen เวลามาตรฐานออสเตรเลีย

เวลามาตรฐาน AUS กลาง

E. เวลามาตรฐานออสเตรเลีย

เวลามาตรฐาน AUS ตะวันออก

เวลามาตรฐานแปซิฟิกตะวันตก

เวลามาตรฐานแทสเมเนีย

เวลามาตรฐานวลาดีวอสตอค

เวลามาตรฐานแปซิฟิกกลาง

เวลามาตรฐานนิวซีแลนด์

UTC + 12

เวลามาตรฐานฟิจิ

เวลามาตรฐาน Kamchatka

เวลามาตรฐานตองกา


7
ผลลัพธ์ของรายการนี้มีความอ่อนไหวต่อว่าคุณกำลังอยู่ในช่วงกลางวันหรือไม่? มิฉะนั้นชื่อดูเหมือนไม่ถูกต้อง เวลามาตรฐานตะวันออกคือ GMT - 5 แต่ GMT - 4 เกือบตลอดปี
JohnOpincar

4
ใช่วิธี TimeZoneInfo.FindSystemTimeZoneById มีความไวต่อกลางวันเวลาออมทรัพย์ ... ดูmsdn.microsoft.com/en-US/library/... มันระบุว่า: "วัตถุ TimeZoneInfo นี้จะถูกใช้เพื่อแปลงเวลาท้องถิ่นเป็นเวลาในโตเกียวและเพื่อตรวจสอบว่าเป็นเวลามาตรฐานโตเกียวหรือเวลาตามฤดูกาลของโตเกียว"
เซบาสเตียน

25
@JohnOpincar - คุณถูกต้อง ชื่อ ID กำลังทำให้เข้าใจผิด "เวลามาตรฐานตะวันออก" หมายถึงทั้ง EST และ EDT
Matt Johnson-Pint

6
@ Sebastian- เพียงเพื่อหลีกเลี่ยงความสับสนฉันคิดว่าประโยคแรกของคุณควรอ่านว่า "ไม่เอาท์พุทของโปรแกรมไม่ไวต่อการปรับเวลาตามฤดูกาล" ไม่ว่าคุณจะรันโปรแกรมในช่วงเวลาใดของปีนั้นรายการจะเหมือนกันซึ่งเป็นสิ่งที่ JohnOpincar ถาม
TTT

6
ระวัง: ชื่อเขตเวลามีความอ่อนไหวต่อระบบปฏิบัติการ Windows Server 2008 และ Windows Server 2012 มีรายการต่างกัน
Ross Presser

92

และหากคุณต้องการให้เลือก HTML ด้วยเขตเวลา Windows ใน:

<select>
<option value="Morocco Standard Time">(GMT) Casablanca</option>
<option value="GMT Standard Time">(GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London</option>
<option value="Greenwich Standard Time">(GMT) Monrovia, Reykjavik</option>
<option value="W. Europe Standard Time">(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna</option>
<option value="Central Europe Standard Time">(GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague</option>
<option value="Romance Standard Time">(GMT+01:00) Brussels, Copenhagen, Madrid, Paris</option>
<option value="Central European Standard Time">(GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb</option>
<option value="W. Central Africa Standard Time">(GMT+01:00) West Central Africa</option>
<option value="Jordan Standard Time">(GMT+02:00) Amman</option>
<option value="GTB Standard Time">(GMT+02:00) Athens, Bucharest, Istanbul</option>
<option value="Middle East Standard Time">(GMT+02:00) Beirut</option>
<option value="Egypt Standard Time">(GMT+02:00) Cairo</option>
<option value="South Africa Standard Time">(GMT+02:00) Harare, Pretoria</option>
<option value="FLE Standard Time">(GMT+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius</option>
<option value="Israel Standard Time">(GMT+02:00) Jerusalem</option>
<option value="E. Europe Standard Time">(GMT+02:00) Minsk</option>
<option value="Namibia Standard Time">(GMT+02:00) Windhoek</option>
<option value="Arabic Standard Time">(GMT+03:00) Baghdad</option>
<option value="Arab Standard Time">(GMT+03:00) Kuwait, Riyadh</option>
<option value="Russian Standard Time">(GMT+03:00) Moscow, St. Petersburg, Volgograd</option>
<option value="E. Africa Standard Time">(GMT+03:00) Nairobi</option>
<option value="Georgian Standard Time">(GMT+03:00) Tbilisi</option>
<option value="Iran Standard Time">(GMT+03:30) Tehran</option>
<option value="Arabian Standard Time">(GMT+04:00) Abu Dhabi, Muscat</option>
<option value="Azerbaijan Standard Time">(GMT+04:00) Baku</option>
<option value="Mauritius Standard Time">(GMT+04:00) Port Louis</option>
<option value="Caucasus Standard Time">(GMT+04:00) Yerevan</option>
<option value="Afghanistan Standard Time">(GMT+04:30) Kabul</option>
<option value="Ekaterinburg Standard Time">(GMT+05:00) Ekaterinburg</option>
<option value="Pakistan Standard Time">(GMT+05:00) Islamabad, Karachi</option>
<option value="West Asia Standard Time">(GMT+05:00) Tashkent</option>
<option value="India Standard Time">(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi</option>
<option value="Sri Lanka Standard Time">(GMT+05:30) Sri Jayawardenepura</option>
<option value="Nepal Standard Time">(GMT+05:45) Kathmandu</option>
<option value="N. Central Asia Standard Time">(GMT+06:00) Almaty, Novosibirsk</option>
<option value="Central Asia Standard Time">(GMT+06:00) Astana, Dhaka</option>
<option value="Myanmar Standard Time">(GMT+06:30) Yangon (Rangoon)</option>
<option value="SE Asia Standard Time">(GMT+07:00) Bangkok, Hanoi, Jakarta</option>
<option value="North Asia Standard Time">(GMT+07:00) Krasnoyarsk</option>
<option value="China Standard Time">(GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi</option>
<option value="North Asia East Standard Time">(GMT+08:00) Irkutsk, Ulaan Bataar</option>
<option value="Singapore Standard Time">(GMT+08:00) Kuala Lumpur, Singapore</option>
<option value="W. Australia Standard Time">(GMT+08:00) Perth</option>
<option value="Taipei Standard Time">(GMT+08:00) Taipei</option>
<option value="Tokyo Standard Time">(GMT+09:00) Osaka, Sapporo, Tokyo</option>
<option value="Korea Standard Time">(GMT+09:00) Seoul</option>
<option value="Yakutsk Standard Time">(GMT+09:00) Yakutsk</option>
<option value="Cen. Australia Standard Time">(GMT+09:30) Adelaide</option>
<option value="AUS Central Standard Time">(GMT+09:30) Darwin</option>
<option value="E. Australia Standard Time">(GMT+10:00) Brisbane</option>
<option value="AUS Eastern Standard Time">(GMT+10:00) Canberra, Melbourne, Sydney</option>
<option value="West Pacific Standard Time">(GMT+10:00) Guam, Port Moresby</option>
<option value="Tasmania Standard Time">(GMT+10:00) Hobart</option>
<option value="Vladivostok Standard Time">(GMT+10:00) Vladivostok</option>
<option value="Central Pacific Standard Time">(GMT+11:00) Magadan, Solomon Is., New Caledonia</option>
<option value="New Zealand Standard Time">(GMT+12:00) Auckland, Wellington</option>
<option value="Fiji Standard Time">(GMT+12:00) Fiji, Kamchatka, Marshall Is.</option>
<option value="Tonga Standard Time">(GMT+13:00) Nuku'alofa</option>
<option value="Azores Standard Time">(GMT-01:00) Azores</option>
<option value="Cape Verde Standard Time">(GMT-01:00) Cape Verde Is.</option>
<option value="Mid-Atlantic Standard Time">(GMT-02:00) Mid-Atlantic</option>
<option value="E. South America Standard Time">(GMT-03:00) Brasilia</option>
<option value="Argentina Standard Time">(GMT-03:00) Buenos Aires</option>
<option value="SA Eastern Standard Time">(GMT-03:00) Georgetown</option>
<option value="Greenland Standard Time">(GMT-03:00) Greenland</option>
<option value="Montevideo Standard Time">(GMT-03:00) Montevideo</option>
<option value="Newfoundland Standard Time">(GMT-03:30) Newfoundland</option>
<option value="Atlantic Standard Time">(GMT-04:00) Atlantic Time (Canada)</option>
<option value="SA Western Standard Time">(GMT-04:00) La Paz</option>
<option value="Central Brazilian Standard Time">(GMT-04:00) Manaus</option>
<option value="Pacific SA Standard Time">(GMT-04:00) Santiago</option>
<option value="Venezuela Standard Time">(GMT-04:30) Caracas</option>
<option value="SA Pacific Standard Time">(GMT-05:00) Bogota, Lima, Quito, Rio Branco</option>
<option value="Eastern Standard Time">(GMT-05:00) Eastern Time (US & Canada)</option>
<option value="US Eastern Standard Time">(GMT-05:00) Indiana (East)</option>
<option value="Central America Standard Time">(GMT-06:00) Central America</option>
<option value="Central Standard Time">(GMT-06:00) Central Time (US & Canada)</option>
<option value="Central Standard Time (Mexico)">(GMT-06:00) Guadalajara, Mexico City, Monterrey</option>
<option value="Canada Central Standard Time">(GMT-06:00) Saskatchewan</option>
<option value="US Mountain Standard Time">(GMT-07:00) Arizona</option>
<option value="Mountain Standard Time (Mexico)">(GMT-07:00) Chihuahua, La Paz, Mazatlan</option>
<option value="Mountain Standard Time">(GMT-07:00) Mountain Time (US & Canada)</option>
<option value="Pacific Standard Time">(GMT-08:00) Pacific Time (US & Canada)</option>
<option value="Pacific Standard Time (Mexico)">(GMT-08:00) Tijuana, Baja California</option>
<option value="Alaskan Standard Time">(GMT-09:00) Alaska</option>
<option value="Hawaiian Standard Time">(GMT-10:00) Hawaii</option>
<option value="Samoa Standard Time">(GMT-11:00) Midway Island, Samoa</option>
<option value="Dateline Standard Time">(GMT-12:00) International Date Line West</option>
</select>

และหากคุณต้องการใช้ใน C # .NET MVC ในมุมมองมีดโกน:

var timezones = new List<SelectListItem> { 
new SelectListItem() { Value="", Text="Select timezone...", Selected = false },
new SelectListItem() { Value="Morocco Standard Time", Text="(GMT) Casablanca", Selected = false },
new SelectListItem() { Value="GMT Standard Time", Text="(GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London", Selected = false },
new SelectListItem() { Value="Greenwich Standard Time", Text="(GMT) Monrovia, Reykjavik", Selected = false },
new SelectListItem() { Value="W. Europe Standard Time", Text="(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna", Selected = false },
new SelectListItem() { Value="Central Europe Standard Time", Text="(GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague", Selected = false },
new SelectListItem() { Value="Romance Standard Time", Text="(GMT+01:00) Brussels, Copenhagen, Madrid, Paris", Selected = false },
new SelectListItem() { Value="Central European Standard Time", Text="(GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb", Selected = false },
new SelectListItem() { Value="W. Central Africa Standard Time", Text="(GMT+01:00) West Central Africa", Selected = false },
new SelectListItem() { Value="Jordan Standard Time", Text="(GMT+02:00) Amman", Selected = false },
new SelectListItem() { Value="GTB Standard Time", Text="(GMT+02:00) Athens, Bucharest, Istanbul", Selected = false },
new SelectListItem() { Value="Middle East Standard Time", Text="(GMT+02:00) Beirut", Selected = false },
new SelectListItem() { Value="Egypt Standard Time", Text="(GMT+02:00) Cairo", Selected = false },
new SelectListItem() { Value="South Africa Standard Time", Text="(GMT+02:00) Harare, Pretoria", Selected = false },
new SelectListItem() { Value="FLE Standard Time", Text="(GMT+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius", Selected = false },
new SelectListItem() { Value="Israel Standard Time", Text="(GMT+02:00) Jerusalem", Selected = false },
new SelectListItem() { Value="E. Europe Standard Time", Text="(GMT+02:00) Minsk", Selected = false },
new SelectListItem() { Value="Namibia Standard Time", Text="(GMT+02:00) Windhoek", Selected = false },
new SelectListItem() { Value="Arabic Standard Time", Text="(GMT+03:00) Baghdad", Selected = false },
new SelectListItem() { Value="Arab Standard Time", Text="(GMT+03:00) Kuwait, Riyadh", Selected = false },
new SelectListItem() { Value="Russian Standard Time", Text="(GMT+03:00) Moscow, St. Petersburg, Volgograd", Selected = false },
new SelectListItem() { Value="E. Africa Standard Time", Text="(GMT+03:00) Nairobi", Selected = false },
new SelectListItem() { Value="Georgian Standard Time", Text="(GMT+03:00) Tbilisi", Selected = false },
new SelectListItem() { Value="Iran Standard Time", Text="(GMT+03:30) Tehran", Selected = false },
new SelectListItem() { Value="Arabian Standard Time", Text="(GMT+04:00) Abu Dhabi, Muscat", Selected = false },
new SelectListItem() { Value="Azerbaijan Standard Time", Text="(GMT+04:00) Baku", Selected = false },
new SelectListItem() { Value="Mauritius Standard Time", Text="(GMT+04:00) Port Louis", Selected = false },
new SelectListItem() { Value="Caucasus Standard Time", Text="(GMT+04:00) Yerevan", Selected = false },
new SelectListItem() { Value="Afghanistan Standard Time", Text="(GMT+04:30) Kabul", Selected = false },
new SelectListItem() { Value="Ekaterinburg Standard Time", Text="(GMT+05:00) Ekaterinburg", Selected = false },
new SelectListItem() { Value="Pakistan Standard Time", Text="(GMT+05:00) Islamabad, Karachi", Selected = false },
new SelectListItem() { Value="West Asia Standard Time", Text="(GMT+05:00) Tashkent", Selected = false },
new SelectListItem() { Value="India Standard Time", Text="(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi", Selected = false },
new SelectListItem() { Value="Sri Lanka Standard Time", Text="(GMT+05:30) Sri Jayawardenepura", Selected = false },
new SelectListItem() { Value="Nepal Standard Time", Text="(GMT+05:45) Kathmandu", Selected = false },
new SelectListItem() { Value="N. Central Asia Standard Time", Text="(GMT+06:00) Almaty, Novosibirsk", Selected = false },
new SelectListItem() { Value="Central Asia Standard Time", Text="(GMT+06:00) Astana, Dhaka", Selected = false },
new SelectListItem() { Value="Myanmar Standard Time", Text="(GMT+06:30) Yangon (Rangoon)", Selected = false },
new SelectListItem() { Value="SE Asia Standard Time", Text="(GMT+07:00) Bangkok, Hanoi, Jakarta", Selected = false },
new SelectListItem() { Value="North Asia Standard Time", Text="(GMT+07:00) Krasnoyarsk", Selected = false },
new SelectListItem() { Value="China Standard Time", Text="(GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi", Selected = false },
new SelectListItem() { Value="North Asia East Standard Time", Text="(GMT+08:00) Irkutsk, Ulaan Bataar", Selected = false },
new SelectListItem() { Value="Singapore Standard Time", Text="(GMT+08:00) Kuala Lumpur, Singapore", Selected = false },
new SelectListItem() { Value="W. Australia Standard Time", Text="(GMT+08:00) Perth", Selected = false },
new SelectListItem() { Value="Taipei Standard Time", Text="(GMT+08:00) Taipei", Selected = false },
new SelectListItem() { Value="Tokyo Standard Time", Text="(GMT+09:00) Osaka, Sapporo, Tokyo", Selected = false },
new SelectListItem() { Value="Korea Standard Time", Text="(GMT+09:00) Seoul", Selected = false },
new SelectListItem() { Value="Yakutsk Standard Time", Text="(GMT+09:00) Yakutsk", Selected = false },
new SelectListItem() { Value="Cen. Australia Standard Time", Text="(GMT+09:30) Adelaide", Selected = false },
new SelectListItem() { Value="AUS Central Standard Time", Text="(GMT+09:30) Darwin", Selected = false },
new SelectListItem() { Value="E. Australia Standard Time", Text="(GMT+10:00) Brisbane", Selected = false },
new SelectListItem() { Value="AUS Eastern Standard Time", Text="(GMT+10:00) Canberra, Melbourne, Sydney", Selected = false },
new SelectListItem() { Value="West Pacific Standard Time", Text="(GMT+10:00) Guam, Port Moresby", Selected = false },
new SelectListItem() { Value="Tasmania Standard Time", Text="(GMT+10:00) Hobart", Selected = false },
new SelectListItem() { Value="Vladivostok Standard Time", Text="(GMT+10:00) Vladivostok", Selected = false },
new SelectListItem() { Value="Central Pacific Standard Time", Text="(GMT+11:00) Magadan, Solomon Is., New Caledonia", Selected = false },
new SelectListItem() { Value="New Zealand Standard Time", Text="(GMT+12:00) Auckland, Wellington", Selected = false },
new SelectListItem() { Value="Fiji Standard Time", Text="(GMT+12:00) Fiji, Kamchatka, Marshall Is.", Selected = false },
new SelectListItem() { Value="Tonga Standard Time", Text="(GMT+13:00) Nuku'alofa", Selected = false },
new SelectListItem() { Value="Azores Standard Time", Text="(GMT-01:00) Azores", Selected = false },
new SelectListItem() { Value="Cape Verde Standard Time", Text="(GMT-01:00) Cape Verde Is.", Selected = false },
new SelectListItem() { Value="Mid-Atlantic Standard Time", Text="(GMT-02:00) Mid-Atlantic", Selected = false },
new SelectListItem() { Value="E. South America Standard Time", Text="(GMT-03:00) Brasilia", Selected = false },
new SelectListItem() { Value="Argentina Standard Time", Text="(GMT-03:00) Buenos Aires", Selected = false },
new SelectListItem() { Value="SA Eastern Standard Time", Text="(GMT-03:00) Georgetown", Selected = false },
new SelectListItem() { Value="Greenland Standard Time", Text="(GMT-03:00) Greenland", Selected = false },
new SelectListItem() { Value="Montevideo Standard Time", Text="(GMT-03:00) Montevideo", Selected = false },
new SelectListItem() { Value="Newfoundland Standard Time", Text="(GMT-03:30) Newfoundland", Selected = false },
new SelectListItem() { Value="Atlantic Standard Time", Text="(GMT-04:00) Atlantic Time (Canada)", Selected = false },
new SelectListItem() { Value="SA Western Standard Time", Text="(GMT-04:00) La Paz", Selected = false },
new SelectListItem() { Value="Central Brazilian Standard Time", Text="(GMT-04:00) Manaus", Selected = false },
new SelectListItem() { Value="Pacific SA Standard Time", Text="(GMT-04:00) Santiago", Selected = false },
new SelectListItem() { Value="Venezuela Standard Time", Text="(GMT-04:30) Caracas", Selected = false },
new SelectListItem() { Value="SA Pacific Standard Time", Text="(GMT-05:00) Bogota, Lima, Quito, Rio Branco", Selected = false },
new SelectListItem() { Value="Eastern Standard Time", Text="(GMT-05:00) Eastern Time (US & Canada)", Selected = false },
new SelectListItem() { Value="US Eastern Standard Time", Text="(GMT-05:00) Indiana (East)", Selected = false },
new SelectListItem() { Value="Central America Standard Time", Text="(GMT-06:00) Central America", Selected = false },
new SelectListItem() { Value="Central Standard Time", Text="(GMT-06:00) Central Time (US & Canada)", Selected = false },
new SelectListItem() { Value="Central Standard Time (Mexico)", Text="(GMT-06:00) Guadalajara, Mexico City, Monterrey", Selected = false },
new SelectListItem() { Value="Canada Central Standard Time", Text="(GMT-06:00) Saskatchewan", Selected = false },
new SelectListItem() { Value="US Mountain Standard Time", Text="(GMT-07:00) Arizona", Selected = false },
new SelectListItem() { Value="Mountain Standard Time (Mexico)", Text="(GMT-07:00) Chihuahua, La Paz, Mazatlan", Selected = false },
new SelectListItem() { Value="Mountain Standard Time", Text="(GMT-07:00) Mountain Time (US & Canada)", Selected = false },
new SelectListItem() { Value="Pacific Standard Time", Text="(GMT-08:00) Pacific Time (US & Canada)", Selected = false },
new SelectListItem() { Value="Pacific Standard Time (Mexico)", Text="(GMT-08:00) Tijuana, Baja California", Selected = false },
new SelectListItem() { Value="Alaskan Standard Time", Text="(GMT-09:00) Alaska", Selected = false },
new SelectListItem() { Value="Hawaiian Standard Time", Text="(GMT-10:00) Hawaii", Selected = false },
new SelectListItem() { Value="Samoa Standard Time", Text="(GMT-11:00) Midway Island, Samoa", Selected = false },
new SelectListItem() { Value="Dateline Standard Time", Text="(GMT-12:00) International Date Line West", Selected = false }
}

ถึงแม้ว่าสำหรับ Razor คุณสามารถสร้างตัวเลือกได้โดยการวนลูป TimeZoneInfo.GetSystemTimeZones()


คุณมีรหัสที่สร้างรายการนี้หรือไม่? ฉันสงสัยว่าคุณแสดงผลส่วน GMT ได้อย่างไร
Jeson Martajaya

45
ทำไมต้องฮาร์ดโค้ดรายการหากคุณสามารถรับมันผ่าน var allTimeZones = TimeZoneInfo.GetSystemTimeZones (); ???
HelloWorld

6
การเข้ารหัสอย่างหนักในรายการมีความเป็นไปได้ที่จะทิ้งค่าที่ถูกต้องสมบูรณ์แบบที่เพิ่มเข้ามาเมื่อเวลาผ่านไป! ไม่ใช่ความคิดที่ดี
ErikE

2
ดูเหมือนว่าเป็นความคิดที่ดีจริงๆที่จะใส่รหัสลงในมุมมอง มีแนวโน้มที่จะผิดพลาดของมนุษย์และความเจ็บปวดที่แท้จริงในการรักษา
ร่า

1
มัน (รหัส. NET) ถูกเพิ่มไว้ที่นี่เพื่อให้สามารถตัดและวางเพื่อลดข้อผิดพลาดของมนุษย์ ที่ถูกกล่าวว่าวิธีการแก้ปัญหายังแนะนำการวนลูปผ่าน TimeZoneInfo.GetSystemTimeZones () ไม่แน่ใจว่าคำจำกัดความของเขตเวลาเปลี่ยนแปลงบ่อยเพียงใด (และการเปลี่ยนแปลงดังกล่าวจะปรากฏใน. NET ทันที) ดังนั้นไม่แน่ใจว่าจำเป็นต้องมี 'การบำรุงรักษา' มากเพียงใด
ProfNimrod


8

จากMSDN

ReadOnlyCollection<TimeZoneInfo> zones = TimeZoneInfo.GetSystemTimeZones();
Console.WriteLine("The local system has the following {0} time zones", zones.Count);
foreach (TimeZoneInfo zone in zones)
   Console.WriteLine(zone.Id);

4
นั่นไม่ใช่รายการของพวกเขา ... ฉันไม่ต้องการเข้าไปข้างในและเขียนรายการพวกเขาโดยทางโปรแกรมเมื่อใดก็ตามที่ฉันต้องการใช้
โทมัส

1
@ user976921: สิ่งนี้ให้รายการของคุณตามที่กำหนดโดยเครื่องท้องถิ่นของคุณ คุณยังสามารถกำหนดรายการที่กำหนดเองได้ดังนั้นฉันจึงไม่แน่ใจว่าคุณจะต้องการรายการที่ครอบคลุมมากขึ้นเพียงใด
Marc

@ user976921: เรียกใช้Marcรหัสจากนั้นคัดลอกจากหน้าต่างผลลัพธ์ไปยังไฟล์ข้อความ
MusiGenesis

1
นั่นจะทำให้ฉันมีรายการถ้าฉันทำโปรแกรมเพื่อส่งออกพวกเขา สิ่งคือฉันต้องการรายการที่ฉันสามารถอ้างอิงได้อย่างรวดเร็วและไม่ต้องติดตามโปรแกรมเพียงเพื่อแสดงให้ฉันทุกครั้งที่ต้องการ ฉันต้องการลิงค์อ้างอิงด่วนที่ฉันสามารถไปได้ทุกเวลาที่ต้องการและดูรายการที่ครอบคลุมทั้งหมด
โทมัส

@Marc +1 สำหรับ linqpad ... ไม่เคยได้ยินมาก่อน แต่มันมีประโยชน์มาก! ขอบคุณ!
Paccc

8

คุณจะพบรายการโซนเวลาทั้งหมดพร้อมกับGMToffsets ที่นี่และคุณสามารถใช้ค่าคอลัมน์ "ชื่อเขตเวลา" เพื่อค้นหาเขตเวลาตาม ID

เช่น

TimeZoneInfo objTimeZoneInfo = TimeZoneInfo.FindTimeZoneById("Dateline Standard Time");

คุณจะได้รับข้อมูลเวลาเรียนโซนที่มีวันเดือนปีโซนเวลาเวลามาตรฐานที่ใช้สำหรับGMT-12: 00


ค่อนข้าง TimeZoneInfo.FindSystemTimeZoneById
Stuart Hallows

อย่างผิดปกติในหน้าเว็บที่อ้างถึง 'ที่นี่' ( msdn.microsoft.com/en-us/library/ ...... ) รายการอาจหรืออาจไม่สมบูรณ์ แต่ไม่ถูกต้อง ตรวจสอบรายการสำหรับเด็กที่มีปัญหาแอริโซนา (สหรัฐอเมริกา) รายการในหน้าระบุว่า "US Mountain Standard Time" แต่ค่าดังกล่าวทำให้เกิด TimeZoneNotFoundException หากคุณใช้ใน FindTimeZoneById หากคุณตรวจสอบผลลัพธ์ของโปรแกรมด้านบนคุณจะเห็นว่าค่าที่ถูกต้องคือ "US Standard Standard Time" (ไม่มีจุด) ดูเหมือนว่าค่าในหน้าถูก 'ล้างข้อมูล' ในบางจุดและไม่น่าเชื่อถือ
แอนน์กันน์

8

และนี่คือ Json รุ่นที่ฉันแปลงมาจากคำตอบของ ProfNimrod ...

{
    tZCode : "Morocco Standard Time",
    tZDesc : "(GMT) Casablanca"
},
{
    tZCode : "GMT Standard Time",
    tZDesc : "(GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London"
},
{
    tZCode : "Greenwich Standard Time",
    tZDesc : "(GMT) Monrovia, Reykjavik"
},
{
    tZCode : "W. Europe Standard Time",
    tZDesc : "(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"
},
{
    tZCode : "Central Europe Standard Time",
    tZDesc : "(GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague"
},
{
    tZCode : "Romance Standard Time",
    tZDesc : "(GMT+01:00) Brussels, Copenhagen, Madrid, Paris"
},
{
    tZCode : "Central European Standard Time",
    tZDesc : "(GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb"
},
{
    tZCode : "W. Central Africa Standard Time",
    tZDesc : "(GMT+01:00) West Central Africa"
},
{
    tZCode : "Jordan Standard Time",
    tZDesc : "(GMT+02:00) Amman"
},
{
    tZCode : "GTB Standard Time",
    tZDesc : "(GMT+02:00) Athens, Bucharest, Istanbul"
},
{
    tZCode : "Middle East Standard Time",
    tZDesc : "(GMT+02:00) Beirut"
},
{
    tZCode : "Egypt Standard Time",
    tZDesc : "(GMT+02:00) Cairo"
},
{
    tZCode : "South Africa Standard Time",
    tZDesc : "(GMT+02:00) Harare, Pretoria"
},
{
    tZCode : "FLE Standard Time",
    tZDesc : "(GMT+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius"
},
{
    tZCode : "Israel Standard Time",
    tZDesc : "(GMT+02:00) Jerusalem"
},
{
    tZCode : "E. Europe Standard Time",
    tZDesc : "(GMT+02:00) Minsk"
},
{
    tZCode : "Namibia Standard Time",
    tZDesc : "(GMT+02:00) Windhoek"
},
{
    tZCode : "Arabic Standard Time",
    tZDesc : "(GMT+03:00) Baghdad"
},
{
    tZCode : "Arab Standard Time",
    tZDesc : "(GMT+03:00) Kuwait, Riyadh"
},
{
    tZCode : "Russian Standard Time",
    tZDesc : "(GMT+03:00) Moscow, St. Petersburg, Volgograd"
},
{
    tZCode : "E. Africa Standard Time",
    tZDesc : "(GMT+03:00) Nairobi"
},
{
    tZCode : "Georgian Standard Time",
    tZDesc : "(GMT+03:00) Tbilisi"
},
{
    tZCode : "Iran Standard Time",
    tZDesc : "(GMT+03:30) Tehran"
},
{
    tZCode : "Arabian Standard Time",
    tZDesc : "(GMT+04:00) Abu Dhabi, Muscat"
},
{
    tZCode : "Azerbaijan Standard Time",
    tZDesc : "(GMT+04:00) Baku"
},
{
    tZCode : "Mauritius Standard Time",
    tZDesc : "(GMT+04:00) Port Louis"
},
{
    tZCode : "Caucasus Standard Time",
    tZDesc : "(GMT+04:00) Yerevan"
},
{
    tZCode : "Afghanistan Standard Time",
    tZDesc : "(GMT+04:30) Kabul"
},
{
    tZCode : "Ekaterinburg Standard Time",
    tZDesc : "(GMT+05:00) Ekaterinburg"
},
{
    tZCode : "Pakistan Standard Time",
    tZDesc : "(GMT+05:00) Islamabad, Karachi"
},
{
    tZCode : "West Asia Standard Time",
    tZDesc : "(GMT+05:00) Tashkent"
},
{
    tZCode : "India Standard Time",
    tZDesc : "(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi"
},
{
    tZCode : "Sri Lanka Standard Time",
    tZDesc : "(GMT+05:30) Sri Jayawardenepura"
},
{
    tZCode : "Nepal Standard Time",
    tZDesc : "(GMT+05:45) Kathmandu"
},
{
    tZCode : "N. Central Asia Standard Time",
    tZDesc : "(GMT+06:00) Almaty, Novosibirsk"
},
{
    tZCode : "Central Asia Standard Time",
    tZDesc : "(GMT+06:00) Astana, Dhaka"
},
{
    tZCode : "Myanmar Standard Time",
    tZDesc : "(GMT+06:30) Yangon (Rangoon)"
},
{
    tZCode : "SE Asia Standard Time",
    tZDesc : "(GMT+07:00) Bangkok, Hanoi, Jakarta"
},
{
    tZCode : "North Asia Standard Time",
    tZDesc : "(GMT+07:00) Krasnoyarsk"
},
{
    tZCode : "China Standard Time",
    tZDesc : "(GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi"
},
{
    tZCode : "North Asia East Standard Time",
    tZDesc : "(GMT+08:00) Irkutsk, Ulaan Bataar"
},
{
    tZCode : "Singapore Standard Time",
    tZDesc : "(GMT+08:00) Kuala Lumpur, Singapore"
},
{
    tZCode : "W. Australia Standard Time",
    tZDesc : "(GMT+08:00) Perth"
},
{
    tZCode : "Taipei Standard Time",
    tZDesc : "(GMT+08:00) Taipei"
},
{
    tZCode : "Tokyo Standard Time",
    tZDesc : "(GMT+09:00) Osaka, Sapporo, Tokyo"
},
{
    tZCode : "Korea Standard Time",
    tZDesc : "(GMT+09:00) Seoul"
},
{
    tZCode : "Yakutsk Standard Time",
    tZDesc : "(GMT+09:00) Yakutsk"
},
{
    tZCode : "Cen. Australia Standard Time",
    tZDesc : "(GMT+09:30) Adelaide"
},
{
    tZCode : "AUS Central Standard Time",
    tZDesc : "(GMT+09:30) Darwin"
},
{
    tZCode : "E. Australia Standard Time",
    tZDesc : "(GMT+10:00) Brisbane"
},
{
    tZCode : "AUS Eastern Standard Time",
    tZDesc : "(GMT+10:00) Canberra, Melbourne, Sydney"
},
{
    tZCode : "West Pacific Standard Time",
    tZDesc : "(GMT+10:00) Guam, Port Moresby"
},
{
    tZCode : "Tasmania Standard Time",
    tZDesc : "(GMT+10:00) Hobart"
},
{
    tZCode : "Vladivostok Standard Time",
    tZDesc : "(GMT+10:00) Vladivostok"
},
{
    tZCode : "Central Pacific Standard Time",
    tZDesc : "(GMT+11:00) Magadan, Solomon Is., New Caledonia"
},
{
    tZCode : "New Zealand Standard Time",
    tZDesc : "(GMT+12:00) Auckland, Wellington"
},
{
    tZCode : "Fiji Standard Time",
    tZDesc : "(GMT+12:00) Fiji, Kamchatka, Marshall Is."
},
{
    tZCode : "Tonga Standard Time",
    tZDesc : "(GMT+13:00) Nuku'alofa"
},
{
    tZCode : "Azores Standard Time",
    tZDesc : "(GMT-01:00) Azores"
},
{
    tZCode : "Cape Verde Standard Time",
    tZDesc : "(GMT-01:00) Cape Verde Is."
},
{
    tZCode : "Mid-Atlantic Standard Time",
    tZDesc : "(GMT-02:00) Mid-Atlantic"
},
{
    tZCode : "E. South America Standard Time",
    tZDesc : "(GMT-03:00) Brasilia"
},
{
    tZCode : "Argentina Standard Time",
    tZDesc : "(GMT-03:00) Buenos Aires"
},
{
    tZCode : "SA Eastern Standard Time",
    tZDesc : "(GMT-03:00) Georgetown"
},
{
    tZCode : "Greenland Standard Time",
    tZDesc : "(GMT-03:00) Greenland"
},
{
    tZCode : "Montevideo Standard Time",
    tZDesc : "(GMT-03:00) Montevideo"
},
{
    tZCode : "Newfoundland Standard Time",
    tZDesc : "(GMT-03:30) Newfoundland"
},
{
    tZCode : "Atlantic Standard Time",
    tZDesc : "(GMT-04:00) Atlantic Time (Canada)"
},
{
    tZCode : "SA Western Standard Time",
    tZDesc : "(GMT-04:00) La Paz"
},
{
    tZCode : "Central Brazilian Standard Time",
    tZDesc : "(GMT-04:00) Manaus"
},
{
    tZCode : "Pacific SA Standard Time",
    tZDesc : "(GMT-04:00) Santiago"
},
{
    tZCode : "Venezuela Standard Time",
    tZDesc : "(GMT-04:30) Caracas"
},
{
    tZCode : "SA Pacific Standard Time",
    tZDesc : "(GMT-05:00) Bogota, Lima, Quito, Rio Branco"
},
{
    tZCode : "Eastern Standard Time",
    tZDesc : "(GMT-05:00) Eastern Time (US & Canada)"
},
{
    tZCode : "US Eastern Standard Time",
    tZDesc : "(GMT-05:00) Indiana (East)"
},
{
    tZCode : "Central America Standard Time",
    tZDesc : "(GMT-06:00) Central America"
},
{
    tZCode : "Central Standard Time",
    tZDesc : "(GMT-06:00) Central Time (US & Canada)"
},
{
    tZCode : "Central Standard Time (Mexico)",
    tZDesc : "(GMT-06:00) Guadalajara, Mexico City, Monterrey"
},
{
    tZCode : "Canada Central Standard Time",
    tZDesc : "(GMT-06:00) Saskatchewan"
},
{
    tZCode : "US Mountain Standard Time",
    tZDesc : "(GMT-07:00) Arizona"
},
{
    tZCode : "Mountain Standard Time (Mexico)",
    tZDesc : "(GMT-07:00) Chihuahua, La Paz, Mazatlan"
},
{
    tZCode : "Mountain Standard Time",
    tZDesc : "(GMT-07:00) Mountain Time (US & Canada)"
},
{
    tZCode : "Pacific Standard Time",
    tZDesc : "(GMT-08:00) Pacific Time (US & Canada)"
},
{
    tZCode : "Pacific Standard Time (Mexico)",
    tZDesc : "(GMT-08:00) Tijuana, Baja California"
},
{
    tZCode : "Alaskan Standard Time",
    tZDesc : "(GMT-09:00) Alaska"
},
{
    tZCode : "Hawaiian Standard Time",
    tZDesc : "(GMT-10:00) Hawaii"
},
{
    tZCode : "Samoa Standard Time",
    tZDesc : "(GMT-11:00) Midway Island, Samoa"
},
{
    tZCode : "Dateline Standard Time",
    tZDesc : "(GMT-12:00) International Date Line West"
}


3

ฉันสงสัยว่านี่คือสิ่งที่คนส่วนใหญ่มองหา:

ค่าดัชนีโซนเวลาของ Microsoft

หวังว่า MS จะทำให้มันทันสมัยอยู่เสมอแม้หลังจาก XP


เพียงบันทึกบนลิงค์นี้ไม่ว่าด้วยเหตุผลใดก็ตามพวกเขาดูเหมือนจะเผยแพร่ ID ของเขตเวลาผิดเล็กน้อย ตัวอย่างเช่นพวกเขามีสหรัฐฯไม่ใช่แค่สหรัฐฯ
Big Luke

3
มีคอลัมน์ที่มีดัชนีเป็นตัวเลข ... มีใครรู้บ้างว่าฉันสามารถหาเขตเวลาโดยใช้ดัชนีนั้นแทนการใช้ชื่อสตริงหรือไม่
Mike Ruhlin

คุณรู้หรือไม่ว่า 'ดัชนีโซนเวลา' ใช้สำหรับทำอะไร มันใช้กับ Windows XP และก่อนหน้าเท่านั้นหรือไม่
Hampton Terry



1
var timeZoneInfos = TimeZoneInfo.GetSystemTimeZones();

ด้านบนแสดงรายการเขตเวลาซึ่งรวมถึงรหัส


0
DateTime dt;
TimeZoneInfo tzf;
tzf = TimeZoneInfo.FindSystemTimeZoneById("TimeZone String");
dt = TimeZoneInfo.ConvertTime(DateTime.Now, tzf);
lbltime.Text = dt.ToString();

0

นี่คือรหัสการทดสอบอย่างเต็มที่และทำงานให้ฉัน คุณสามารถใช้มันเพียงคัดลอกและวางในหน้า aspx และ cs ของคุณ

นี่คือบล็อกของฉันคุณสามารถดาวน์โหลดรหัสเต็มได้ที่นี่ ขอบคุณ

http://www.c-sharpcorner.com/blogs/display-all-the-timezone-information-in-dropdown-list-of-a-local-system-using-c-sharp-with-asp-net

<form id="form1" runat="server">
    <div style="font-size: 30px; padding: 25px; text-align: center;">
        Get Current Date And Time Of All TimeZones
    </div>
    <hr />
    <div style="font-size: 18px; padding: 25px; text-align: center;">
        <div class="clsLeft">
            Select TimeZone :-
        </div>
        <div class="clsRight">
            <asp:DropDownList ID="ddlTimeZone" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlTimeZone_SelectedIndexChanged"
                Font-Size="18px">
            </asp:DropDownList>
        </div>
        <div class="clearspace">
        </div>
        <div class="clsLeft">
            Selected TimeZone :-
        </div>
        <div class="clsRight">
            <asp:Label ID="lblTimeZone" runat="server" Text="" />
        </div>
        <div class="clearspace">
        </div>
        <div class="clsLeft">
            Current Date And Time :-
        </div>
        <div class="clsRight">
            <asp:Label ID="lblCurrentDateTime" runat="server" Text="" />
        </div>
    </div>
    <p>
        &nbsp;</p>
    <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
    </form>

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            BindTimeZone();
            GetSelectedTimeZone();
        }
    }

    protected void ddlTimeZone_SelectedIndexChanged(object sender, EventArgs e)
    {
        GetSelectedTimeZone();
    }

    /// <summary>
    /// Get all timezone from local system and bind it in dropdownlist
    /// </summary>
    private void BindTimeZone()
    {
        foreach (TimeZoneInfo z in TimeZoneInfo.GetSystemTimeZones())
        {
            ddlTimeZone.Items.Add(new ListItem(z.DisplayName, z.Id));
        }
    }

    /// <summary>
    /// Get selected timezone and current date & time
    /// </summary>
    private void GetSelectedTimeZone()
    {
        DateTimeOffset newTime = TimeZoneInfo.ConvertTime(DateTimeOffset.UtcNow, TimeZoneInfo.FindSystemTimeZoneById(ddlTimeZone.SelectedValue));
        //DateTimeOffset newTime2 = TimeZoneInfo.ConvertTime(DateTimeOffset.UtcNow, TimeZoneInfo.FindSystemTimeZoneById(ddlTimeZone.SelectedValue));
        lblTimeZone.Text = ddlTimeZone.SelectedItem.Text;
        lblCurrentDateTime.Text = newTime.ToString();
        string str;
        str = lblCurrentDateTime.Text;
        string s=str.Substring(0, 10);
        DateTime dt = new DateTime();
        dt = Convert.ToDateTime(s);
       // Response.Write(dt.ToString());
        Response.Write(ddlTimeZone.SelectedValue);

    }
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.